I want to cache Maven dependencies in a layer of the build stage of my Docker Multi Stage Build.
My Dockerfile looks as follows:
FROM maven:3-jdk-8 as mvnbuild
RUN mkdir -p /opt/workspace
WORKDIR /opt/workspace
COPY pom.xml .
RUN mvn -B -s /usr/share/maven/ref/settings-docker.xml dependency:resolve
COPY . .
RUN mvn -B -s /usr/share/maven/ref/settings-docker.xml package
FROM openjdk:8-jre-alpine
...
```
I based this Dockerfile on the example provided in the Docker Multi Stage Build blog post (also available on Github).
When I run the build, instead of seeing the dependencies downloaded once by dependency:resolve
and then re-used by package
, I am seeing the dependencies downloaded by both steps.
Has anyone got this working? What am I doing wrong here?