docker - 告诉Docker构建忽略RUN命令顺序的更改

标签 docker dockerfile docker-build docker-layer

说我们有这个:

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/

相关文章:

networking - 了解 docker 中的覆盖网络

linux - 如何在不让容器删除映射内容的情况下使用 "docker run -v"?

spring - 连接到本地主机 :5432 refused after docker run when port 5432 is clearly open and listening?

docker - 构建上下文大小会影响图像大小吗?

通过 docker 的 Rstudio 无法读取/etc/.odbc.ini,只能读取 ~/.odbc.ini

python - docker-compose 与来自 sql 转储的多个 postgres 数据库

docker - 我无法使用 Docker 构建我的 docker 文件来创建我的 docker 镜像

Docker 中的安全配置文件 (docker build --security-opt)

bash - Shell脚本-IFS读取语法错误:意外重定向

windows - Dockerfile:在路径中使用空格字符进行复制/添加 (Windows)