如何在Docker映像中缓存图层?

时间:2018-10-02 11:18:37

标签: docker caching docker-build

我的docker文件中有以下命令:

ADD static/ /www/static/

我注意到,即使docker build目录的内容已更改,重新运行static/也会重用缓存。这正常吗?

泊坞窗如何确定何时需要重建图层?只是通过查看需要执行的命令,还是通过检查实际执行的操作?我认为是前者,因为后者将需要重新运行该操作,从而破坏了缓存的目的。

我现在使用的解决方法是--no-cache,但这会导致构建变慢,因为没有层可以重复使用。有更好的方法吗?

我认为最好的选择是将一项操作标记为不可缓存。这可能吗?

1 个答案:

答案 0 :(得分:0)

根据Dockers website,如果指令已更改,则特定层的缓存应无效。
但是,对于ADD和COPY,将比较文件的校验和,如果文件和的校验和已更改,则缓存无效。

因此,static/中文件的内容似乎没有更改。因此,为确保您可能会看到奇怪的行为,请在第一次构建之前和第二次之前(使用重新生成的文件进行重新构建时)对static/中的文件执行校验和。