dockerbuild设不使用caching

docker build不使用它的caching。

 docker build -f Dockerfile . 

生成与此相同的输出:

 docker build -f Dockerfile --no-cache . 

我正在修改Dockerfile,在文件末尾添加命令。 所以以前的图层应该被caching和有效。

我有足够的磁盘空间。

有任何想法吗?

Docker版本17.06.1-ce,build 874a737

Dockerfile:

 FROM registry:5000/base/python:xenial RUN mkdir /code COPY . /code RUN apt-get update && \ apt-get install -y \ vim \ less COPY /etc/foo /etc/foo ENTRYPOINT ["/bin/bash"] 

从Dockerfile中,如果将行添加到Dockerfile中,或者更改正在构build的代码,则只有一行可以被caching:

 RUN mkdir /code 

之后,你执行一个:

 COPY . /code 

因为你已经改变你的Dockerfile的内容了. 已经改变了(Dockerfile是。的一部分),因此需要再次执行COPY ,生成一个新的图层。 一旦你生成一个新的图层,每一个后续的图层不再有一个caching,需要重build。

为了改善caching,请考虑将更less的行放在Dockerfile的顶部。 这将离开COPY . /code COPY . /code行,因为它几乎每次都会改变。