9

有没有办法在自动 dockerhub 构建期间连接到多个私有 git 存储库?我们正在构建 golang 应用程序,需要“去获取”其他私有仓库作为我们构建的一部分,目前它们失败了,因为 docker 无法连接到它们,只有目标私有仓库。

主仓库很好,因为部署密钥是通过 Dockerhub 安装的,但是任何后续的私有仓库导入都会失败。

我可以看到解决此问题的一种方法是在本地构建映像,将其“docker push”到 dockerhub,然后在部署端将其拉下,这违背了 dockerhub 和自动构建系统的目的。另一种是将 ssh 密钥烘焙到基础映像中,这不是一个好主意。

有没有人对此有不涉及将 ssh 密钥烘焙到图像或在本地构建的解决方案?

非常感谢。

4

1 回答 1

0

单个 ssh 密钥

如果您只有一个ssh-key,那么将其添加到rootDocker 容器 ( /root/.ssh/id_rsa) 中的 ssh-path 应该足以成功提取您的存储库。取决于您的私人仓库在哪里,您可能应该将一些其他配置添加到.ssh.

多个 ssh 密钥

如果您有不同ssh-keys的意见,我建议您为所有回购创建一个个人令牌。这样您就可以轻松解决问题。您应该git在获取之前更新 -url:

[取自这里:https ://gist.github.com/shurcooL/6927554 ]

git config --global url."https://${GITHUB_TOKEN}:x-oauth-basic@github.com/".insteadOf "https://github.com/"

通过此更改,您应该能够成功构建您的 docker-container。


使用vendor-tool 可以帮助您解决这个问题。来自go1.5供应商的功能可供使用。我们正在使用Glide,它只存储引用(而不是整个项目)。

于 2016-10-19T06:51:04.907 回答