# 7. Layered plus a JDK 25 AOT cache (JEP 483/514/515), built by a training run at image build time. # Faster start - and one more large layer that changes on every code change (docs/06-aot-cache.md). FROM eclipse-temurin:25-jre AS builder WORKDIR /builder COPY target/app.jar application.jar RUN java -Djarmode=tools -jar application.jar extract --layers --destination extracted FROM eclipse-temurin:25-jre WORKDIR /application COPY --from=builder /builder/extracted/dependencies/ ./ COPY --from=builder /builder/extracted/spring-boot-loader/ ./ COPY --from=builder /builder/extracted/snapshot-dependencies/ ./ COPY --from=builder /builder/extracted/application/ ./ RUN java -XX:AOTCacheOutput=app.aot -Dspring.context.exit=onRefresh -jar application.jar ENTRYPOINT ["java", "-XX:AOTCache=app.aot", "-jar", "application.jar"]