说我们有这个:
RUN go get 'github.com/foo/one'
RUN go get 'github.com/foo/two'
RUN go get 'github.com/foo/three'
然后我们更改顺序:
RUN go get 'github.com/foo/two'
RUN go get 'github.com/foo/three'
RUN go get 'github.com/foo/one'
缓存将完全失效。有没有办法告诉
docker build
依赖关系的顺序无关紧要。某些语法如下:PARALLEL START
RUN go get 'github.com/foo/two'
RUN go get 'github.com/foo/three'
RUN go get 'github.com/foo/one'
PARALLEL END
最佳答案
由于构建图像时图层系统是如何工作的,所以这是不可能的。
通过在现有内容之上添加内容来构建图像,因此,如果更改顺序,则要更改结构,因此要构建不同的图像。
并不是说缓存是“无效的”,而是根本没有缓存。从 docker 的 Angular 来看,它们完全是不同的图像。
关于docker - 告诉Docker构建忽略RUN命令顺序的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59837681/