FROM eclipse-temurin:21.0.12.1_1-jdk-jammy AS build
WORKDIR /workspace
COPY .mvn/ .mvn/
COPY mvnw pom.xml ./
RUN sed -i 's/\r$//' mvnw
COPY src/ src/
# package ejecuta pruebas unitarias; la suite de integración se ejecuta en CI con verify.
RUN sh ./mvnw --batch-mode --no-transfer-progress package

FROM eclipse-temurin:21.0.12.1_1-jre-jammy AS runtime
RUN apt-get update \
    && apt-get install -y --no-install-recommends curl \
    && rm -rf /var/lib/apt/lists/* \
    && groupadd --gid 10001 orchestrator \
    && useradd --uid 10001 --gid orchestrator --no-create-home --shell /usr/sbin/nologin orchestrator
WORKDIR /app
COPY --from=build --chown=10001:10001 /workspace/target/*.jar /app/app.jar
USER 10001:10001
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 \
    CMD curl --fail --silent --max-time 4 http://localhost:8080/actuator/health/readiness > /dev/null || exit 1
ENTRYPOINT ["java", "-jar", "/app/app.jar"]
