FROM maven:3-amazoncorretto-21-alpine AS builder
WORKDIR /workspace

COPY pom.xml ./
COPY mvnw ./
COPY .mvn .mvn

RUN mvn -B -DskipTests dependency:go-offline

COPY src ./src
RUN mvn -B -DskipTests package

FROM amazoncorretto:21-alpine AS runtime
WORKDIR /app

COPY --from=builder /workspace/target/*.jar /app/app.jar

ENV JAVA_OPTS="-XX:MaxRAMPercentage=75.0 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -Djava.security.egd=file:/dev/./urandom"

EXPOSE 8080

ENTRYPOINT ["sh", "-c", "exec java $JAVA_OPTS -jar /app/app.jar"]
