8b6432d58d
This patch optimizes the java-worker image; - Use multi-stage build to separate the build-stage from the "deploy" stage - Switch to the official Maven image, instead of manual installation of Maven. The official Maven image is also based on the `openjdk` repository on Docker Hub, which replaces the (now deprecated) `java` repository. - Use `COPY` instead of `ADD` to follow best-practice - Add `-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap` arguments so that JAVA will take memory-limits into account - Use a JRE base image for the final build-stage This change brings the size of the final image down from 184MB to 87MB Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
18 lines
473 B
Docker
18 lines
473 B
Docker
FROM maven:3.5-jdk-8-alpine AS build
|
|
|
|
WORKDIR /code
|
|
|
|
COPY pom.xml /code/pom.xml
|
|
RUN ["mvn", "dependency:resolve"]
|
|
RUN ["mvn", "verify"]
|
|
|
|
# Adding source, compile and package into a fat jar
|
|
COPY ["src/main", "/code/src/main"]
|
|
RUN ["mvn", "package"]
|
|
|
|
FROM openjdk:8-jre-alpine
|
|
|
|
COPY --from=build /code/target/worker-jar-with-dependencies.jar /
|
|
|
|
CMD ["java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-jar", "/worker-jar-with-dependencies.jar"]
|