# Step 1: Build the application using Eclipse Temurin JDK 21 FROM maven:3.9.8-eclipse-temurin-21 AS build WORKDIR /app # Copy Gradle wrapper and dependencies for caching COPY gradle gradle COPY gradlew . COPY build.gradle.kts . COPY settings.gradle.kts . COPY src src # Give execution permission to Gradle wrapper RUN chmod +x ./gradlew # Build the JAR file RUN ./gradlew bootJar # Step 2: Create a minimal runtime image (JDK is required for Spring Boot) FROM openjdk:21 WORKDIR /app # Copy the built JAR from the builder stage COPY --from=build /app/build/libs/*.jar app.jar # Expose port 8080 EXPOSE 8080 # Run the application ENTRYPOINT ["java", "-jar", "/app/app.jar"]