Docker Hub和git子模块
我有一个使用git子模块的存储库,我配置了Docker Hub上的自动构建。在构建过程开始时,Docker Hub似乎从默认分支(主分支)提取存储库,更新子模块,然后签出到触发构建的特定分支(比如分支功能-a)。如果feature-a分支的子模块与master的子模块非常相同,那么它可以正常工作,但是如果子模块不同(比如,从不同的repo中提取一个子模块),那么构建就会失败Docker Hub和git子模块,docker,github,dockerhub,Docker,Github,Dockerhub,我有一个使用git子模块的存储库,我配置了Docker Hub上的自动构建。在构建过程开始时,Docker Hub似乎从默认分支(主分支)提取存储库,更新子模块,然后签出到触发构建的特定分支(比如分支功能-a)。如果feature-a分支的子模块与master的子模块非常相同,那么它可以正常工作,但是如果子模块不同(比如,从不同的repo中提取一个子模块),那么构建就会失败 有没有办法让Docker Hub直接克隆正确的分支?它可能会失败,因为子模块是私有的 您可以添加生成环境变量SSH\u P
有没有办法让Docker Hub直接克隆正确的分支?它可能会失败,因为子模块是私有的 您可以添加生成环境变量
SSH\u PRIVATE
。并添加一个可以访问私有子模块存储库的私钥
不过需要注意的是,您可能需要生成一个不同于用于其他任何用途的私钥的diff私钥,并将其添加到私有子模块repo中
编辑:即使您的链接github帐户可以访问repo,这也是必需的,因为您很可能将子模块url指定为基于ssh的(例如。git@github.com:账户/回购(吉特)
Edit2:添加文档您需要使用钩子:
TL;DR:将其放入挂钩/签出后中:
#!/bin/bash
# Docker hub does a recursive clone, then checks the branch out,
# so when a PR adds a submodule (or updates it), it fails.
git submodule update --init
谢谢Clintm,但是子模块是公开的,你正在讨论的问题不是我面临的问题。很好,谢谢你,我认为这是正确的答案,我会很快测试它。