我在 docker 缓存方面遇到问题:当我有两个 docker 文件
文件 1
FROM base
COPY path/1/file tmp/
文件 2
FROM base
COPY path/2/file tmp/
如果两个文件相同,则由于源路径不同,图层仍然不同。文件2的构建是否可以使用文件1中的缓存,因此不必重做构建(在复制步骤之后进行昂贵的操作(?
这是不可能的,因为该命令与其他文件不同。
来自 Docker 文档:
从缓存中已有的父映像开始,将下一条指令与从该基本映像派生的所有子映像进行比较,以查看其中一个子映像是否使用完全相同的指令构建。否则,缓存将失效。
和
缓存失效后,所有后续 Dockerfile 命令都会生成新映像,并且不会使用缓存。
码头工人缓存
因此,您在"新"命令下执行的所有内容都将是一个新的生成层。