为什么docker build不使用构buildcaching?

每次我改变我的Dockerfile ,即使我在文件末尾改变了一些东西, Dockerfile重新运行我的所有命令。 这些命令没有被caching。

在这个特殊情况下,我的形象是基于这个声明

 ONBUILD ADD . /some/path 

这意味着,当我的Dockerfile发生变化时, Dockerfile没有语句可以被caching,因为ADD . /some/path ADD . /some/path在执行任何语句之前执行。

一般来说:如果有一个ADD . /some/pathDockerfile 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'