我的docker文件中有以下命令:
ADD static/ /www/static/
我注意到,即使docker build
目录的内容已更改,重新运行static/
也会重用缓存。这正常吗?
泊坞窗如何确定何时需要重建图层?只是通过查看需要执行的命令,还是通过检查实际执行的操作?我认为是前者,因为后者将需要重新运行该操作,从而破坏了缓存的目的。
我现在使用的解决方法是--no-cache
,但这会导致构建变慢,因为没有层可以重复使用。有更好的方法吗?
我认为最好的选择是将一项操作标记为不可缓存。这可能吗?
答案 0 :(得分:0)
根据Dockers website,如果指令已更改,则特定层的缓存应无效。
但是,对于ADD和COPY,将比较文件的校验和,如果文件和的校验和已更改,则缓存无效。
因此,static/
中文件的内容似乎没有更改。因此,为确保您可能会看到奇怪的行为,请在第一次构建之前和第二次之前(使用重新生成的文件进行重新构建时)对static/
中的文件执行校验和。