有没有办法在自动化dockerhub构建期间连接到多个私有git repos?我们正在构建golang应用程序,并且需要“获取”其他私有存储库作为我们构建的一部分,并且当它们失败时,因为docker无法连接到它们,只有目标私有存储库.
主要仓库很好,因为部署密钥是通过Dockerhub安装的,但任何后续的私有仓库导入都会失败.
我可以看到,解决这个问题的一种方法是在本地构建映像,“docker push”到dockerhub,然后在部署端将其拉下来,这会破坏dockerhub和自动构建系统的目的.另一种是将ssh键烘焙到基本图像中,这不是一个好主意.
有没有人有这个解决方案,不涉及将ssh密钥烧成图像或在本地构建?
非常感谢.
最佳答案
单个ssh-key
原文链接:https://www.f2er.com/docker/435982.html如果你只有一个ssh-key,那么将它添加到Docker容器(/root/.ssh/id_rsa)中的根ssh-path应该足以成功地撤销你的回购.取决于你的私人回购的地方,你应该添加一些其他的配置到.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.
使用供应商工具可以帮助您解决这个问题.从go1.5开始,销售功能可供使用.我们使用Glide并且它仅存储引用(不是整体项目).