每当我更改Dockerfile
时,即使我在文件末尾更改了某些内容,docker也会重新运行我的所有命令。这些命令是不缓存。
答案 0 :(得分:3)
在这种特殊情况下,我的图像基于包含此声明的图像
ONBUILD ADD . /some/path
这意味着,当Dockerfile
更改时,我的Dockerfile
中的任何语句都不会被缓存,因为ADD . /some/path
在我的任何语句执行之前执行。
一般情况下:如果在ADD . /some/path
之后语句中有Dockerfile
语句,则可以缓存该语句,因为对Dockerfile
的更改会使缓存失效。
我的解决方案是将我要添加的文件放入子目录my_data
,然后将子目录的内容添加到路径中:
ADD my_data /some/path
不幸的是,将Dockerfile
添加到.dockerignore
无济于事,因为docker build
无法执行,因为它找不到Dockerfile
并且您收到错误{ {1}}