docker autobuild与git私有子模块
我在GitHub上有两个名为dashboard
和ui
私有存储库。 我将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/