42 lines
1.2 KiB
Docker
42 lines
1.2 KiB
Docker
# 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"]
|