FROM maven:3.9-eclipse-temurin-21 AS build WORKDIR /app # Separate layer for dependencies: only re-runs when pom.xml changes. # The cache mount keeps ~/.m2 across builds so even pom.xml changes # don't require a full re-download. COPY pom.xml . RUN --mount=type=cache,target=/root/.m2 \ mvn dependency:go-offline -B -q COPY src ./src RUN --mount=type=cache,target=/root/.m2 \ mvn package -DskipTests -B FROM eclipse-temurin:21-jre WORKDIR /deployments COPY --from=build /app/target/quarkus-app/lib/ ./lib/ COPY --from=build /app/target/quarkus-app/*.jar ./ COPY --from=build /app/target/quarkus-app/app/ ./app/ COPY --from=build /app/target/quarkus-app/quarkus/ ./quarkus/ EXPOSE 8080 ENTRYPOINT ["java", "-jar", "/deployments/quarkus-run.jar"]