Spaces:
Build error
Build error
File size: 1,108 Bytes
9373c61 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# Ultra-optimized layered build using Distroless
# Expected size: ~180-220MB with better caching
FROM gcr.io/distroless/java21-debian12:nonroot as base
# Stage 1: Extract JAR layers for optimal caching
FROM eclipse-temurin:21-jdk-alpine as extractor
WORKDIR /app
COPY build/libs/*.jar app.jar
RUN java -Djarmode=layertools -jar app.jar extract
# Stage 2: Production image with extracted layers
FROM base
WORKDIR /app
# Copy layers in dependency order (best caching)
COPY --from=extractor /app/dependencies/ ./
COPY --from=extractor /app/spring-boot-loader/ ./
COPY --from=extractor /app/snapshot-dependencies/ ./
COPY --from=extractor /app/application/ ./
EXPOSE 8080
# Optimized JVM settings for micro-containers
ENTRYPOINT ["java", \
"-XX:+UseContainerSupport", \
"-XX:MaxRAMPercentage=70.0", \
"-XX:+UseG1GC", \
"-XX:+UseStringDeduplication", \
"-XX:+CompactStrings", \
"-Xshare:on", \
"-Djava.security.egd=file:/dev/./urandom", \
"-Dspring.backgroundpreinitializer.ignore=true", \
"org.springframework.boot.loader.JarLauncher"]
|