我有一个私人 git 存储库,我必须将其添加到我的 docker 映像中。为此,我将其克隆到与 相同的目录中Dockerfile
,然后使用以下 docker 命令:
ADD my_repo_clone /usr/src/
我的仓库有一个我克隆的版本标签,v1
. 所以我克隆的文件总是一样的。
问题是,当我构建这个 docker 镜像时,我总是得到一个新镜像,而不是替换旧镜像:
docker build --rm -t "org_name/image_name" .
显然,由于ctime
文件发生了变化,docker缓存没有看到我的文件是相同的,所以我总是得到一个新的图像,我想避免这种情况。
我尝试touch
克隆的 repo 和更改atime
并mtime
成为一个固定的日期,但这仍然不够。
如何阻止 Docker(不更改计算文件哈希并再次构建它的 Docker 源代码)始终创建新图像。
或者如何在图像构建过程中克隆存储库?(为此我需要 SSH 转发,因为 repo 是私有的,而且我也无法在映像构建过程中使 SSH 代理转发工作)