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
行,因为它几乎每次都会改变。