Files
cmc/support-portal-backend/Dockerfile
2025-10-10 10:04:53 +05:30

46 lines
1.1 KiB
Docker

# =======================
# Builder stage
# =======================
FROM maven:3.8.5-eclipse-temurin-17 AS builder
WORKDIR /workdir/server
# Copy only pom.xml first for better layer caching
COPY pom.xml .
# Download dependencies with optimization flags
RUN mvn dependency:resolve dependency:resolve-plugins -B -T 1C
# Copy source code
COPY src ./src
# Build the application
RUN mvn package -B -T 1C -DskipTests -Dmaven.javadoc.skip=true
# Verify the JAR was created
RUN ls -la target/
# =======================
# Runtime stage
# =======================
FROM eclipse-temurin:17-jre-focal
# Expose port
EXPOSE 8080
# Create app and uploads directories
RUN mkdir -p /app && \
mkdir -p /app/uploads && \
chmod 755 /app/uploads
# Set working directory
WORKDIR /app
# Copy the JAR from builder stage
COPY --from=builder /workdir/server/target/*.jar /app/
# Create volume for uploads (optional but recommended)
VOLUME ["/app/uploads"]
# Entry point: dynamically run the first JAR in /app
ENTRYPOINT ["sh", "-c", "java -jar /app/$(ls /app | grep .jar | head -n1)"]