如果文件的源路径不同但目标和内容相同,如何高效使用 docker 缓存?



我在 docker 缓存方面遇到问题:当我有两个 docker 文件

文件 1

FROM base
COPY path/1/file tmp/

文件 2

FROM base
COPY path/2/file tmp/

如果两个文件相同,则由于源路径不同,图层仍然不同。文件2的构建是否可以使用文件1中的缓存,因此不必重做构建(在复制步骤之后进行昂贵的操作(?

这是不可能的,因为该命令与其他文件不同。

来自 Docker 文档:

缓存中已有的父映像开始,将下一条指令与从该基本映像派生的所有子映像进行比较,以查看其中一个子映像是否使用完全相同的指令构建。否则,缓存将失效。

缓存失效后,所有后续 Dockerfile 命令都会生成新映像,并且不会使用缓存。

码头工人缓存

因此,您在"新"命令下执行的所有内容都将是一个新的生成层。

最新更新