+-
如何防止Dockerfile缓存git clone
我有一个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 /的步骤,以便可以在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/

当磁头改变时,api调用将返回不同的结果,使docker的缓存无效.

如果您正在处理私人回购,您可以使用github’s x-oauth-basic authentication scheme和personal access token这样:

   ADD https://$ACCESS_TOKEN:[email protected]/repos/$USER/$REPO/git/refs/heads/$BRANCH version.json

(thx @captnolimar用于建议编辑以澄清身份验证)

点击查看更多相关文章

转载注明原文:如何防止Dockerfile缓存git clone - 乐贴网