From 97b63c665a3f37a75a68a807dbcb3abd11b9ff59 Mon Sep 17 00:00:00 2001 From: lionsdev Date: Fri, 24 Apr 2026 16:53:05 +0000 Subject: [PATCH] fix(docker): rewrite for fast-jar layout (target/quarkus-app/) + Java 21 + UID 1001 (lionsctl pipeline compat) --- Dockerfile | 68 +++++++++++++++++------------------------------------- 1 file changed, 21 insertions(+), 47 deletions(-) diff --git a/Dockerfile b/Dockerfile index ef83430..cf902a3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,47 +1,21 @@ -#### -# Dockerfile pour BTP Xpress Client (Frontend) - Développement -# Utilisé pour les builds de développement local -#### - -## Stage 1 : Build avec Maven -FROM maven:3.9.6-eclipse-temurin-17 AS build -WORKDIR /build - -# Copier pom.xml et télécharger les dépendances -COPY pom.xml . -RUN mvn dependency:go-offline -B - -# Copier le code source -COPY src ./src - -# Build de l'application (uber-jar pour compatibilité lionsctl) -RUN mvn clean package -DskipTests -B -Dquarkus.package.type=uber-jar - -## Stage 2 : Runtime image -FROM eclipse-temurin:17-jre-alpine - -ENV LANGUAGE='fr_FR:fr' - -# Installer curl pour les health checks -RUN apk add --no-cache curl - -# Créer un utilisateur non-root pour la sécurité -RUN addgroup -g 185 -S appuser && adduser -u 185 -S appuser -G appuser -RUN mkdir -p /deployments && chown -R appuser:appuser /deployments - -# Copier le JAR depuis le build (lionsctl utilise uber-jar) -# Note: Le fichier sera btpxpress-client-1.0.0-runner.jar -COPY --from=build --chown=appuser:appuser /build/target/*-runner.jar /deployments/app.jar - -EXPOSE 8080 -USER appuser - -# Variables d'environnement JVM optimisées -ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager -XX:+UseG1GC -XX:MaxRAMPercentage=75.0 -XX:+UseStringDeduplication" - -# Health check -HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ - CMD curl -f http://localhost:8080/q/health/ready || exit 1 - -ENTRYPOINT ["sh", "-c", "exec java $JAVA_OPTS -jar /deployments/app.jar"] - +# Dockerfile for btpxpress-client +# Used by lionsctl pipeline. Expects `mvn clean package -Pprod` to have produced target/quarkus-app/ (fast-jar). +FROM registry.access.redhat.com/ubi8/openjdk-21:1.21 + +ENV LANGUAGE='fr_FR:fr' + +COPY --chown=1001:1001 target/quarkus-app/lib/ /deployments/lib/ +COPY --chown=1001:1001 target/quarkus-app/*.jar /deployments/ +COPY --chown=1001:1001 target/quarkus-app/app/ /deployments/app/ +COPY --chown=1001:1001 target/quarkus-app/quarkus/ /deployments/quarkus/ + +USER 1001 + +EXPOSE 8080 + +ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" + +HEALTHCHECK --interval=30s --timeout=3s --start-period=30s --retries=3 \ + CMD curl -f http://localhost:8080/health || exit 1 + +ENTRYPOINT [ "java", "-jar", "/deployments/quarkus-run.jar" ]