Faster Docker Builds using Inline Caching
So you’re building a container where it has packages, like npm ci or go mod download,
and would you like to make it quicker? For example:
COPY go.mod go.sum ./
RUN go mod downloadNormally when you edit go.mod or go.sum the go mod download will have to redownload
all the packages as its cache was busted by the change in the files.
Well - we can use inline bind mounts to avoid that.
These appear as --mount statements in the Dockerfile as part of RUN commands.
They instruct Docker to keep a cache, such as downloaded files, between different runs of docker build.
To use them add --mount=type=cache to your RUN command and specify a target.
COPY go.mod go.sum ./
RUN --mount=type=cache,target=/go/pkg/mod \
go mod downloadOr for Node/NPM
RUN --mount=type=cache,target=/root/.npm npm installDocs
Here are the Docker docks which go into more detail:
Mini Series
This is part of a set of posts on useful Advanced Docker techniques