首页 > 解决方案 > 谷歌云构建:在谷歌云存储库上克隆私有存储库失败

问题描述

我们正在使用 Google Cloud Build 测试 Google Cloud Repositories。

我们创建了一个基本的 cloudbuild.yaml 并开始构建本身(我们正在使用 Go)。

我们的 Go 程序有一些导入在同一个存储库中(托管在 Google Cloud Repositories 上),例如:

在包本身中,我们有 source.developers.google.com 上的导入路径。当 Go 尝试克隆存储库时(运行 go get 时,由于缺少凭据而失败:

步骤#0:克隆到'/workspace/gopath/src/source.developers.google.com/ourrepository'...
步骤#0:致命:无法读取
' https://source.developers.google.com的用户名':终端提示已禁用
步骤#0:包source.developers.google.com/subpackage:退出状态128 [...]

错误:构建步骤 0“gcr.io/cloud-builders/go”失败:退出状态 1

云构建帐户已经可以访问存储库,并且可以克隆它。

我们如何使用 Google Build 克隆存储库?

标签: google-cloud-buildgoogle-cloud-repository

解决方案


我认为您需要创建一个包含 git 的 docker 容器(ubuntu 容器),并在该容器中使用 ssh 密钥克隆您的存储库,在您将容器与代码存储库链接后。然后你把那个 conyainer 推到你项目中的 gcr 上。接下来,在您的 cloudbuild.yaml 中,您使用您推送的那个容器,通过 ssh url 克隆 repo。


推荐阅读