我有一个使用 git 子模块的存储库,并且我在 Docker Hub 上配置了自动构建。在构建过程开始时,看起来 Docker Hub 从默认分支(master)拉取存储库,更新子模块,然后 checkout 到触发构建的特定分支(比如说分支 feature-a)。如果 feature-a 分支具有与 master 完全相同的子模块,则它工作正常,但如果子模块不同(例如,从不同的 repo 中提取一个子模块),则构建失败。
有没有办法让 Docker Hub 直接克隆正确的分支?
最佳答案
您需要使用 Hook :https://docs.docker.com/docker-hub/builds/advanced/#custom-build-phase-hooks
TL;DR: 把它放在 hooks/post_checkout
:
#!/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
关于Docker Hub 和 git 子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54055666/