在自动化dockerhub构建期间,有没有办法连接到多个私有git存储库?我们正在构建golang应用程序,并且需要“获取”#go;其他私人回购作为我们构建的一部分,目前他们失败,因为docker无法连接到他们,只有目标私人回购。
主要仓库很好,因为部署密钥是通过Dockerhub安装的,但任何后续的私有仓库导入都会失败。
我可以看到的一种方法是在本地构建图像,#34; docker push"它到dockerhub,然后在部署方面将其拉下来,这违背了dockerhub和自动构建系统的目的。另一种方法是将ssh键烘焙到基本图像中,这不是一个好主意。
有没有人能够解决这个问题,而不是将ssh密钥刻录到图像中或在本地构建?
非常感谢。
答案 0 :(得分:0)
单个ssh-key
如果您只有一个ssh-key
,那么将其添加到Docker容器中的root
ssh路径(/root/.ssh/id_rsa
)应足以成功提取您的回购。取决于您的私人回购所在的位置,您可能应该为.ssh
添加一些其他配置。
多个ssh-keys
如果您有不同的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
- 工具可以帮助您解决此问题。从go1.5
开始,可以使用出售功能。我们使用Glide并且它仅存储引用(而不是整体项目)。