栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

docker在git checkout同一文件时添加缓存

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker在git checkout同一文件时添加缓存

当文件的mtime值更改并且git不跟踪文件的mtime值时,Docker使docker
build缓存无效。这种缓存失效也会在其他情况下出现,例如在持续集成或涉及docker,git和branchs的构建环境中。

在要求docker构建容器之前,我一直在运行的Makefile中使用“触摸”目标:

touch:    @echo "Reset timestamps on git working directory files..."    find ./ | grep -v .git | xargs touch -t 200001010000.00

接下来,始终在同一Makefile中运行

make touch
docker build
或始终在同一基于docker的“ build”目标中运行…

另一个选项是设置一个git钩子,该钩子会自动修改mtime值:https
:
//git.wiki.kernel.org/index.php/Examplescripts#Setting_the_timestamps_of_the_files_to_the_commit_timestamp_of_the_commit_which_last_touched_them

另一个可能的解决方案是派生docker并将mtime从其缓存定义中删除:https
:
//github.com/docker/docker/blob/master/pkg/tarsum/tarsum.go

注意 :从docker
1.8开始,

mtime
使缓存无效时不再考虑在内。拉取请求#12031更新了此行为



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415532.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号