# ====== Build stage ====== FROM maven:3.9.9-eclipse-temurin-17 AS build WORKDIR /app COPY pom.xml . RUN mvn -q -e -B dependency:go-offline COPY src ./src RUN mvn -q -e -B clean package -DskipTests # ====== Runtime stage ====== FROM eclipse-temurin:17-jre WORKDIR /app # Copy fat jar from build stage COPY --from=build /app/target/*.jar app.jar # Copy startup script COPY scripts/create-secret-file.sh /app/create-secret-file.sh RUN chmod +x /app/create-secret-file.sh # Expose port (for local/docker-compose/documentation) EXPOSE 8080 ENV JAVA_OPTS="" # Create secret file from env vars (for testing ConfigLoader) then start app ENTRYPOINT ["sh", "-c", "/app/create-secret-file.sh && java $JAVA_OPTS -jar app.jar"]