IIUC,docker 本身不支持在存储库中缓存多阶段构建层。我曾期望缓存多阶段构建的结果,但事实并非如此?
以一个玩具构建文件为例:
FROM centos:7 as stage_0
RUN sleep 60
RUN echo "Hello world" > /root/x.txt
FROM centos:7 as output
COPY --from=stage_0 /root/x.txt /root/x.txt
好像在使用 --cache-from
时,stage_0
需要重新运行。有没有办法在图像存储库中缓存 stage_0
的结果,这样就不需要每次都构建它,假设输入不变?
我一直在使用多阶段构建来进行需要大量时间的操作——例如编译第三方工具 - 因此这些将是在构建之间缓存的最有用的项目。