# ------------------------------------------------------------------ # STAGE 1: Build the application using Maven Wrapper # ------------------------------------------------------------------ FROM eclipse-temurin:25-jdk-alpine AS builder WORKDIR /app # Copy the Maven wrapper and pom.xml first to cache dependencies COPY .mvn/ .mvn COPY mvnw pom.xml ./ # Make the wrapper executable (just in case) and download dependencies RUN chmod +x mvnw RUN ./mvnw dependency:go-offline # Copy the actual source code and build the application (skip tests in Docker, # as they will be run by the Gitea Action before the build) COPY src ./src RUN ./mvnw clean package -DskipTests # ------------------------------------------------------------------ # STAGE 2: Create the minimal runtime image # ------------------------------------------------------------------ FROM eclipse-temurin:25-jre-alpine WORKDIR /app # Expose the port your Spring Boot app runs on EXPOSE 8080 # Copy the compiled jar file from the builder stage COPY --from=builder /app/target/*.jar app.jar # Run the application ENTRYPOINT ["java", "-jar", "app.jar"]