我有一个 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 表示添加到虚拟位置。
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 缓存失效。
如果您正在处理私人回购,您可以使用github的x-oauth-basic认证方案 with a 个人访问令牌像这样:
ADD https://$ACCESS_TOKEN:[email protected]/repos/$USER/$REPO/git/refs/heads/$BRANCH version.json
(谢谢@captnolimar 的建议编辑以澄清身份验证)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)