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

时间:2014-12-12 05:32:30

标签: git github go docker dockerhub

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

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

我可以看到的一种方法是在本地构建图像,#34; docker push"它到dockerhub,然后在部署方面将其拉下来,这违背了dockerhub和自动构建系统的目的。另一种方法是将ssh键烘焙到基本图像中,这不是一个好主意。

有没有人能够解决这个问题,而不是将ssh密钥刻录到图像中或在本地构建?

非常感谢。

1 个答案:

答案 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并且它仅存储引用(而不是整体项目)。