backend/Dockerfile

26 lines
754 B
Docker

# --- Builder Stage ---
FROM maven:3.9.11-eclipse-temurin-25 AS builder
WORKDIR /app
COPY pom.xml .
RUN mvn dependency:go-offline -B
COPY src ./src
RUN mvn clean package -DskipTests
# --- Runtime Stage ---
# Changed from alpine to the standard 'jre' image (Ubuntu-based)
# This provides the glibc environment SevenZipJBinding needs.
FROM eclipse-temurin:25-jre-jammy
WORKDIR /app
# Install rar for CBR file creation
RUN apt-get update && apt-get install -y rar && rm -rf /var/lib/apt/lists/*
# Copy the jar from the builder stage
COPY --from=builder /app/target/*.jar app.jar
EXPOSE 8080
# Added --enable-native-access=ALL-UNNAMED for Java 25 compatibility with JNI
ENTRYPOINT ["java", "--enable-native-access=ALL-UNNAMED", "-jar", "/app/app.jar"]