8

在新创建的谷歌容器构建器中,我无法在构建过程中获取 git 标签。在构建过程中,默认克隆似乎不会获取 git 标签。我添加了一个调用的自定义构建过程,git fetch --tags但这会导致错误:

Fetching origin git: 'credential-gcloud.sh' is not a git command. See 'git --help'. fatal: could not read Username for 'https://source.developers.google.com': No such device or address

# cloudbuild.yaml
#!/bin/bash

openssl aes-256-cbc -k "$ENC_TOKEN" -in gcr_env_vars.sh.enc -out gcr_env_vars.sh -
source gcr_env_vars.sh
env
git config --global url.https://${CI_USER_TOKEN}@github.com/.insteadOf git@github.com:

pushd vendor
git submodule update --init --recursive
popd

docker build -t gcr.io/project-compute/continuous-deploy/project-ui:$COMMIT_SHA -f /workspace/installer/docker/ui/Dockerfile .
docker build -t gcr.io/project-compute/continuous-deploy/project-auth:$COMMIT_SHA -f /workspace/installer/docker/auth/Dockerfile .
4

2 回答 2

2

作为第一个构建步骤,这对我有用:

- name: gcr.io/cloud-builders/git
  args: [fetch, --depth=100]
于 2017-04-13T19:08:26.203 回答
0

明确地说,您希望 Git 存储库中的所有标签都可用,而不仅仅是在标签更改时触发?在后者中,触发标签应该是可用的 IIUC。

我将向 Container Builder 团队中的某个人寻求更详细的解释,但该错误告诉我他们使用 gcloud 克隆了 Google Cloud Source Repository (GCSR),它配置了一个名为的 Git 凭据帮助程序。他们可能在调用您的容器或主机之前在另一个容器中执行此操作。由于 gcloud 和/或 gcloud credential helper 在您的容器中不可用,因此您无法使用 GCSR 正确进行身份验证。

您可以在此处了解有关凭证助手的更多信息。

于 2017-03-29T13:54:59.843 回答