git – Dockerhub使用多个私有回购自动构建

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

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

我可以看到,解决这个问题的一种方法是在本地构建映像,“docker push”到dockerhub,然后在部署端将其拉下来,这会破坏dockerhub和自动构建系统的目的.另一种是将ssh键烘焙到基本图像中,这不是一个好主意.

有没有人有这个解决方案,不涉及将ssh密钥烧成图像或在本地构建?

非常感谢.

最佳答案
单个ssh-key

如果你只有一个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并且它仅存储引用(不是整体项目).

相关文章

最近一直在开发Apworks框架的案例代码,同时也在一起修复Apw...
最近每天都在空闲时间努力编写Apworks框架的案例代码WeText。...
在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中,...
最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...