比如我安装一个东西耗时两个小时,但是构建成功之后再构建一次他就很快了,说明它缓存了,现在我的疑惑是如果我稍微改变了一点东西,如何保证他不需要在再耗时两个小时。
光阴似箭催人老,日月如移越少年。
docker build过程中每执行一步RUN命令,就生成一个镜像,另外镜像之间有血缘关系,是否需要重新编译两个小时取决于你的修改影响的第一个镜像有多早。简单理解当你修改dockerfile时,当你修改了第N行的RUN命令, N+1之后的命令都要重跑;
第N行的RUN命令, N+1之后的命令都要重跑
docker image --tree #查看镜像的依赖关系 另外你直接docker images也能看到很多None名字的镜像文件, 那就是你之前build的结果; 如果build成功的话,就会把None改成你指定的name;
docker build过程中每执行一步RUN命令,就生成一个镜像,另外镜像之间有血缘关系,是否需要重新编译两个小时取决于你的修改影响的第一个镜像有多早。
简单理解当你修改dockerfile时,当你修改了
第N行的RUN命令, N+1之后的命令都要重跑
;