gpt4 book ai didi

git - 如何防止 Dockerfile 缓存 git clone

转载 作者:IT老高 更新时间:2023-10-28 12:37:32 25 4
gpt4 key购买 nike

我有一个 Dockerfile 试图将 Web 应用程序打包并部署到容器中。在 Docker 镜像构建期间,应用程序的代码从 git 存储库中获取。这是 Dockerfile 快照:

........
RUN git clone --depth=1 git-repository-url $GIT_HOME/
RUN mvn package -Dmaven.test.skip
........

我希望docker不要缓存 RUN git clone --depth=1 git-repository-url $GIT_HOME/ 的步骤,以便可以反射(reflect)存储库上正在进行的更新关于 Docker 镜像构建。有可能实现吗?

最佳答案

另一种解决方法:

如果您使用 GitHub(或者最有可能使用 gitlab 或 bitbucket),您可以将 GitHub API 的 repo 表示添加到虚拟位置。

ADD https://api.github.com/repos/$USER/$REPO/git/refs/heads/$BRANCH version.json
RUN git clone -b $BRANCH https://github.com/$USER/$REPO.git $GIT_HOME/

head 改变时 API 调用会返回不同的结果,导致 docker 缓存失效。

如果您正在处理私有(private)存储库,您可以使用 github's x-oauth-basic authentication schemepersonal access token像这样:

ADD https://$ACCESS_TOKEN:x-oauth-basic@api.github.com/repos/$USER/$REPO/git/refs/heads/$BRANCH version.json

(感谢@captnolimar 建议进行编辑以澄清身份验证)

关于git - 如何防止 Dockerfile 缓存 git clone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36996046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com