Jenkins 构建的流程是
刚开始使用的是 springboot 的 fatjar,问题就是每次构建推送的时候都要重新打包 100 多 M,很费时
现在想使用 docker 分层镜像缓存的原理,将 maven 构建拆分为 lib 和 app.jar ,这样每次构建只需要几百 k 就够了,本地测试都正常,没有更改依赖的时候,第二次构建都是瞬间完成
但是放到 Jenkins 上跑的时候,发现 14,15 行两个命令并没有走缓存,请问有人碰到过吗?
Dockerfile
Jenkins 的 git 更新日志
Jenkins 构建日志
本地构建日志
1
Aliencn 2020-09-10 12:05:46 +08:00
感觉像是有些操作修改了原文件的时间戳,让 docker 认为这是新文件就放弃使用缓存了。
|
2
lawsiki OP @Aliencn #1 查过好像是 git checkout 的时候修改文件时间了,但是我尝试 使用 find ./ | grep -v .git | xargs touch -t 200001010000.00 修改文件时间后还是一样的问题
|
3
calmzhu 2020-09-10 13:04:41 +08:00
看下 jenkinsFile 文件
然后在 dockerbuild 之前将 target/lib 考到第三方目录。用 hash 比对一下两次之间的文件看看 然后用 Jenkins 时 建议不要管本地过不过。Jenkins 跟本地环境可以差非常多。除非对某个步骤依赖的环境极为清楚。看本地反而限制自己排查问题 |