为什么docker build不使用构buildcaching?
每次我改变我的Dockerfile
,即使我在文件末尾改变了一些东西, Dockerfile
重新运行我的所有命令。 这些命令没有被caching。
在这个特殊情况下,我的形象是基于这个声明
ONBUILD ADD . /some/path
这意味着,当我的Dockerfile
发生变化时, Dockerfile
没有语句可以被caching,因为ADD . /some/path
ADD . /some/path
在执行任何语句之前执行。
一般来说:如果有一个ADD . /some/path
在Dockerfile
ADD . /some/path
语句之后,语句可以被caching,因为对Dockerfile
的改变使得caching失效。
我的解决scheme是把我想要添加到子目录my_data
,然后将子目录的内容添加到path:
ADD my_data /some/path
不幸的是,将Dockerfile
添加到.dockerignore
没有帮助,因为然后.dockerignore
docker build
不能执行,因为它没有findDockerfile
并且得到错误Dockerfile was excluded by .dockerignore pattern 'Dockerfile'