重新运行Docker直到某个步骤使用缓存?

时间:2014-12-14 08:44:36

标签: docker

是否有任何选项可以强制Docker在不使用该步骤的缓存的情况下运行构建?

特定用例是这样的:

...
ADD some.cfg some.cfg
RUN do something with some.cfg

在处理Dockerfile时,通常需要调整配置并测试它们。 从Docker的角度来看,从我作为Dockerfile的角度来看,这些步骤仍未修改 写道我希望Docker使用缓存来运行构建,直到ADD操作并从那时开始 没有缓存。这可能吗?

2 个答案:

答案 0 :(得分:4)

正如Mykola建议的那样,Docker将对文件进行校验和,如果内容发生变化,则应使缓存无效。但是,您始终可以通过在此时设置或更改环境变量来强制Dockerfile中给定行的缓存失效,例如:

...
ENV updated-adds-on 14-DEC-14
ADD...

答案 1 :(得分:3)

根据this,您不必在添加的文件更改上禁用缓存,因为docker将检查内容并在更改时跳过缓存。否则

  

您可以在docker build命令中使用--no-cache = true选项。