在自动云构建期间无法提取 Google 源代码库
Can't Pull Google Source Repo During Automated Cloud Build
我有一个 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:
- 构建一个
cloudbuild.yaml
文件并包括以下步骤:
steps:
# Pull Search Console repo to include in the build.
- name: 'gcr.io/cloud-builders/gcloud'
args: ['source', 'repos', 'clone', 'xxx']
- 在您的
Dockerfile
中,您可以将存储库从您的工作区复制到您的新映像中:
FROM xxx:latest
# Copy the repo into Docker
copy xxx /xxx
您可以阅读有关 creating a basic build configuration file here 的更多信息。
将 --network=cloudbuild
添加到您的 args
以允许构建器服务帐户凭据传递到您的 Dockerfile 步骤。
steps:
- name: gcr.io/cloud-builders/docker
args: ['build', '-t', 'THE_IMAGE', '--network=cloudbuild', '.']
我有一个 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:
- 构建一个
cloudbuild.yaml
文件并包括以下步骤:
steps:
# Pull Search Console repo to include in the build.
- name: 'gcr.io/cloud-builders/gcloud'
args: ['source', 'repos', 'clone', 'xxx']
- 在您的
Dockerfile
中,您可以将存储库从您的工作区复制到您的新映像中:
FROM xxx:latest
# Copy the repo into Docker
copy xxx /xxx
您可以阅读有关 creating a basic build configuration file here 的更多信息。
将 --network=cloudbuild
添加到您的 args
以允许构建器服务帐户凭据传递到您的 Dockerfile 步骤。
steps:
- name: gcr.io/cloud-builders/docker
args: ['build', '-t', 'THE_IMAGE', '--network=cloudbuild', '.']