26 lines
1.0 KiB
Docker
26 lines
1.0 KiB
Docker
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/
|
|
COPY contracts/ contracts/
|
|
COPY schemas/ schemas/
|
|
COPY examples/contracts/ examples/contracts/
|
|
# 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"]
|