-
Notifications
You must be signed in to change notification settings - Fork 424
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Artifact caching for Multi-stage Builds #36
Comments
|
Facing similar issue. This proposal if/when done will help address the issue. |
|
Sadly, I don't see how that One idea that I can imagine is to declare a volume mount requirement. Imagine something like: |
|
Try using this FROM maven
WORKDIR /usr/src/app
# /root/.m2 is a volume :(
ENV MAVEN_OPTS=-Dmaven.repo.local=../m2repo/
COPY pom.xml .
# v2.8 doesn't work :(
RUN mvn -B -e -C -T 1C org.apache.maven.plugins:maven-dependency-plugin:3.0.2:go-offline
COPY . .
RUN mvn -B -e -o -T 1C verify
FROM openjdk
COPY --from=0 /usr/src/app/target/*.jar ./It caches the local repo like how the python onbuild Dockerfile does it. MAVEN_OPTS is needed because someone made /root/.m2/ a volume so stuff that goes in there doesn't get saved. verify is needed because "dependency:go-offline" doesn't work. You could probably just omit the "dependency:go-offline" part. Edit: using a newer dependency:go-offline because the older one doesn't work. |
|
@sixcorners I am trying to do exactly the same thing you are doing, but for some reason my maven offline install fails and says it can't find the POM.xml for some maven internal projects. Have you had a similar problem? |
|
Now that .m2 is no longer a volume this should work |
I would love to use this for a multi-stage build, but the lack of a volume mount option for docker build poses a serious inefficiency due to the lack of artifact caching.
Are you aware of any good alternatives?
The text was updated successfully, but these errors were encountered: