25 lines
865 B
Docker
25 lines
865 B
Docker
|
# Multi-Stage-Build builder
|
||
|
# Extract layers from application to minimize image size
|
||
|
FROM adoptopenjdk/openjdk11:alpine-slim AS builder
|
||
|
WORKDIR application
|
||
|
ARG JAR_FILE=target/*.jar
|
||
|
COPY ${JAR_FILE} application.jar
|
||
|
RUN java -Djarmode=layertools -jar application.jar extract
|
||
|
|
||
|
|
||
|
# Build the actual image
|
||
|
FROM adoptopenjdk/openjdk11:alpine-slim
|
||
|
WORKDIR /application
|
||
|
COPY --from=builder application/dependencies/ ./
|
||
|
COPY --from=builder application/spring-boot-loader/ ./
|
||
|
COPY --from=builder application/snapshot-dependencies/ ./
|
||
|
COPY --from=builder application/application/ ./
|
||
|
|
||
|
EXPOSE 8080
|
||
|
|
||
|
ENV JAVA_OPTIONS=""
|
||
|
|
||
|
HEALTHCHECK --interval=30s --timeout=30s --retries=3 \
|
||
|
CMD wget --no-verbose --spider http://localhost:8080/actuator/health || exit 1
|
||
|
|
||
|
CMD ["java", "org.springframework.boot.loader.JarLauncher", "-XX:+UseSerialGC", "-XX:MaxRAM=256m", "${JAVA_OPTIONS}" ]
|