docker autobuild与git私有子模块

我在GitHub上有两个名为dashboardui私有存储库。 我将ui定义为dashboard的git子模块,并且将dockerconfiguration为在特定分支上的每个更改上自动构builddashboard

我读了这个文档https://docs.docker.com/docker-hub/builds/ ,但是当我尝试在我的ui设置中设置docker给出的部署密钥时,它说“密钥已经在使用”。 事实上,这个键已被dashboard使用,以允许docker自动build立这个回购!

这是我的docker生成日志:

错误:

 Failed to clone repository: Cloning into '/tmp/build_byaxhis7sznbvmb6wgwzm6n'... Submodule 'app/styles/ui' (git@github.com:yllieth/ui.git) registered for path 'app/styles/ui' Cloning into 'app/styles/ui'... Warning: Permanently added 'github.com,192.30.252.130' (RSA) to the list of known hosts. ERROR: Repository not found. fatal: The remote end hung up unexpectedly Clone of 'git@github.com:yllieth/ui.git' into submodule path 'app/styles/ui' failed 

Dockerfile:

即使我的控制dashboard有一个定义,Docker也没有find任何Dockerfile。 所以,我将无法给出任何指示或添加另一个SSH密钥。

如果有人有一个关于如何使用autobuild与私人回购和git submodule的想法,我感兴趣的!

这很丑陋,但是可以像github调用它们一样创build一个机器用户,并将该部署密钥作为用户的密钥(从部署密钥中删除后)添加到该密钥中。 然后将该用户作为只读用户添加到该构build所需的每个回购。

我正在等待从docker队得知更好的东西。

如果您的GitHub存储库包含私有子模块的链接,则会在构build中收到错误消息。 通常,Docker Hub会在您的GitHub存储库中设置一个部署密钥。 不幸的是,GitHub只允许一个存储库部署密钥访问一个存储库。 作为一种解决方法,您需要在GitHub中创build一个专用用户帐户 ,并将自动构build的部署密钥附加到该帐户。 这个专用的构build帐户可以被限制为需要访问构build所需的存储库。

一个家伙已经在Docker 文档中发起了更新请求。 他还包括可能帮助你解决这个问题的截图。

如果子模块不工作,您可以尝试切换到子树。 它更多或更喜欢做同样的改变。 子树在项目中用作远程。

https://medium.com/@v/git-subtrees-a-tutorial-6ff568381844
http://git-scm.com/book/en/v1/Git-Tools-Subtree-Merging
http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/