在自动构建云期间无法提取Google Source Repo

时间:2018-10-04 18:14:45

标签: google-compute-engine google-container-registry

我有一个Dockerfile,我正在使用它来构建可在Google Compute Engine上运行的图像。

Dockerfile的一部分应提取Google Cloud Source Repo并将其添加到图像中。

使用Cloud Builder时出现以下错误:

```

Step 6/6 : RUN gcloud source repos clone repoXXX --project=projectXXX
---> Running in xxx
[91mERROR: (gcloud.source.repos.clone) You do not currently have an active account selected.
Please run:
  $ gcloud auth login 
    to obtain new credentials, or if you have already logged in with a different account:
  $ gcloud config set account ACCOUNT
    to select an already authenticated account to use.
The command '/bin/sh -c gcloud source repos clone repoXXX -- 
project=projectXXX' returned a non-zero code: 1

```

我不确定我在做什么错吗?

我没有使用cloudbuild.yaml文件,但是我认为cloudbuilder服务帐户将能够提取存储库,因为它在IAM中具有“编辑者”访问权限。

如何成功构建映像?

更新

如果您发现了这个问题,则可以按照以下两个步骤构建Google Cloud Source Repos:

  1. 构建一个cloudbuild.yaml文件,并包括以下步骤:

steps: # Pull Search Console repo to include in the build. - name: 'gcr.io/cloud-builders/gcloud' args: ['source', 'repos', 'clone', 'xxx']

  1. 在您的Dockerfile中,您可以将工作区中的存储库复制到新图像中:

FROM xxx:latest # Copy the repo into Docker copy xxx /xxx

您可以了解有关creating a basic build configuration file here的更多信息。

1 个答案:

答案 0 :(得分:2)

--network=cloudbuild添加到您的args中,以允许构建器服务帐户凭据传递到您的Dockerfile步骤。

steps:
- name: gcr.io/cloud-builders/docker
  args: ['build', '-t', 'THE_IMAGE', '--network=cloudbuild', '.']