Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Hub和git子模块_Docker_Github_Dockerhub - Fatal编程技术网

Docker Hub和git子模块

Docker Hub和git子模块,docker,github,dockerhub,Docker,Github,Dockerhub,我有一个使用git子模块的存储库,我配置了Docker Hub上的自动构建。在构建过程开始时,Docker Hub似乎从默认分支(主分支)提取存储库,更新子模块,然后签出到触发构建的特定分支(比如分支功能-a)。如果feature-a分支的子模块与master的子模块非常相同,那么它可以正常工作,但是如果子模块不同(比如,从不同的repo中提取一个子模块),那么构建就会失败 有没有办法让Docker Hub直接克隆正确的分支?它可能会失败,因为子模块是私有的 您可以添加生成环境变量SSH\u P

我有一个使用git子模块的存储库,我配置了Docker Hub上的自动构建。在构建过程开始时,Docker Hub似乎从默认分支(主分支)提取存储库,更新子模块,然后签出到触发构建的特定分支(比如分支功能-a)。如果feature-a分支的子模块与master的子模块非常相同,那么它可以正常工作,但是如果子模块不同(比如,从不同的repo中提取一个子模块),那么构建就会失败


有没有办法让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,但是子模块是公开的,你正在讨论的问题不是我面临的问题。很好,谢谢你,我认为这是正确的答案,我会很快测试它。