使用 gcloud 命令的容器生成器 dockerfile

Container builder dockerfile with gcloud commands

我有一个容器生成器步骤

steps:
- id: dockerbuild
  name: gcr.io/cloud-builders/docker
  entrypoint: 'bash'
  args:
  - -c
  - |
    docker build . -t test 
images: ['gcr.io/project/test']

用于创建此测试图像的 Dockerfile 具有 gsutil 特定命令,例如

FROM gcr.io/cloud-builders/gcloud
RUN gsutil ls

当我使用

向容器构建器服务提交 docker 构建时
gcloud container builds submit --config cloudbuild.yml

我看到以下错误

You are attempting to perform an operation that requires a project id, with none configured. Please re-run gsutil config and make sure to follow the instructions for finding and entering your default project id.
The command '/bin/sh -c gsutil ls' returned a non-zero code: 1
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: exit status 1

我的问题是,我们如何在 DockerFile 中使用 gcloud/gsutil 命令,以便我可以 运行 在 docker 构建步骤中?

为此,您的 Dockerfile 要么需要从已安装云 SDK 的基础映像开始(如 FROM gcr.io/cloud-builders/gcloud),要么您需要安装它。这是安装它的 Dockerfilehttps://github.com/GoogleCloudPlatform/cloud-builders/blob/master/gcloud/Dockerfile.slim

要使用工具构建器调用 "gcloud commands.",您需要 Container Builder service account,因为它会代表您执行构建。

这里 GitHub 有一个云构建者使用 gcloud 命令的例子:

注意:您必须指定 $PROJECT_ID 它是您的构建器工作所必需的。