#### # 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 RUN mvn clean package -DskipTests -B ## 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 (format fast-jar Quarkus) COPY --from=build --chown=appuser:appuser /build/target/quarkus-app/ /deployments/ 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/quarkus-run.jar"]