Docker multi-stage build caching

Viewed 573

IIUC, docker doesn't natively support caching multi-stage build layers in a repository. I had expected the results of the multi-stage build to be cached, but is that not the case?

For example, take a toy build file:

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

It seems like when using --cache-from, stage_0 needs to rerun. Is there a way of caching the results of stage_0 in the image repository such that it doesn't need to be built each time, assuming the inputs don't change?

I've been using multi-stage builds for operations that take lots of time — e.g. compiling a third-party tool — so these would be the most helpful items to cache between builds.

0 Answers
Related