erp-java/services/system-tool-service/Dockerfile

46 lines
918 B
Docker

# 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"]