# Stage 1: Build FROM maven:3.9-eclipse-temurin-21 AS builder WORKDIR /build # Copy backend module POMs first (better layer caching) COPY backend/pom.xml backend/ COPY backend/it-asset-management-client/pom.xml backend/it-asset-management-client/ COPY backend/it-asset-management-server/pom.xml backend/it-asset-management-server/ # Copy libs (your manually installed JARs) COPY backend/libs/ backend/libs/ # Copy entire backend source COPY backend/ backend/ # Build backend RUN mvn -f backend/pom.xml clean package -DskipTests # Stage 2: Runtime FROM eclipse-temurin:21-jre-alpine AS runner WORKDIR /app RUN addgroup --system spring && adduser --system spring -G spring COPY --from=builder /build/backend/it-asset-management-server/target/it-asset-management-server-1.0.0.jar app.jar # Copy BPMN files #COPY --chown=spring:spring bpmn/ ./bpmn/ #COPY --chown=spring:spring ../bpmn/ ./bpmn/ COPY --chown=spring:spring bpmn/ /app/bpmn/ USER spring EXPOSE 8070 ENV SPRING_PROFILES_ACTIVE=server ENV IKON_ACCESSMANAGEMENT_INIT_FILE=/app/bpmn/project.json ENV IKON_PROCESSENGINE_BPMN_PATH=/app/bpmn ENV JAVA_OPTS="-XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0" ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]