# System Tool Service Dockerfile # Multi-stage build for optimized image size FROM maven:3.9-eclipse-temurin-21 AS builder WORKDIR /app # Copy pom.xml first for dependency caching COPY pom.xml . RUN mvn dependency:go-offline -B # Copy source code COPY src ./src COPY bootstrap.yml . # Build the application RUN mvn clean package -DskipTests -B # Runtime stage FROM eclipse-temurin:21-jre-jammy WORKDIR /app # Create non-root user RUN groupadd -r erp && useradd -r -g erp erp # Copy the built JAR COPY --from=builder /app/target/*.jar app.jar # Copy entrypoint script COPY docker-entrypoint.sh /docker-entrypoint.sh RUN chmod +x /docker-entrypoint.sh # Set ownership RUN chown -R erp:erp /app USER erp EXPOSE 8087 # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD curl -f http://localhost:8087/actuator/health || exit 1 ENTRYPOINT ["/docker-entrypoint.sh"]