2026-04-27 14:57:33 +02:00
|
|
|
# =============================================================================
|
|
|
|
|
# Stage 1: Build
|
|
|
|
|
# =============================================================================
|
|
|
|
|
FROM maven:3.9-eclipse-temurin-21 AS build
|
|
|
|
|
|
|
|
|
|
WORKDIR /build
|
|
|
|
|
|
|
|
|
|
# Dependencies zuerst cachen (Layer-Cache bei Code-Änderungen stabil)
|
|
|
|
|
COPY pom.xml .
|
|
|
|
|
RUN mvn dependency:go-offline -q
|
|
|
|
|
|
|
|
|
|
COPY src ./src
|
|
|
|
|
RUN mvn package -DskipTests -q
|
|
|
|
|
|
|
|
|
|
# =============================================================================
|
|
|
|
|
# Stage 2: Runtime
|
|
|
|
|
# =============================================================================
|
|
|
|
|
FROM eclipse-temurin:21-jre
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
2026-04-28 14:32:45 +02:00
|
|
|
# Emoji-Schriftart für PDF-Export (Java AWT nutzt fontconfig-Fallback automatisch)
|
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
|
|
fonts-noto-color-emoji fontconfig \
|
|
|
|
|
&& fc-cache -f \
|
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
2026-04-27 14:57:33 +02:00
|
|
|
# Quarkus Fast-JAR Layout kopieren
|
|
|
|
|
COPY --from=build /build/target/quarkus-app/lib/ ./lib/
|
|
|
|
|
COPY --from=build /build/target/quarkus-app/*.jar ./
|
|
|
|
|
COPY --from=build /build/target/quarkus-app/app/ ./app/
|
|
|
|
|
COPY --from=build /build/target/quarkus-app/quarkus/ ./quarkus/
|
|
|
|
|
|
|
|
|
|
EXPOSE 8090
|
|
|
|
|
|
|
|
|
|
# Alle Konfigurationswerte können als Env-Variablen überschrieben werden:
|
|
|
|
|
#
|
|
|
|
|
# DC_API_KEY API-Key für eingehende Anfragen
|
|
|
|
|
# DC_AI_BASE_URL Ollama-Endpunkt
|
|
|
|
|
# DC_AI_API_KEY Ollama X-API-KEY
|
|
|
|
|
# DC_AI_MAIN_MODEL Hauptmodell (Übersetzung + Auswertung)
|
|
|
|
|
# DC_AI_OCR_MODEL OCR-Modell
|
|
|
|
|
# QUARKUS_REST_CLIENT_ORDS_API_URL ORDS-Basis-URL
|
|
|
|
|
|
2026-04-28 14:32:45 +02:00
|
|
|
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Djava.awt.headless=true"
|
2026-04-27 14:57:33 +02:00
|
|
|
|
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
|
|
|
|
|
CMD curl -sf http://localhost:8090/check/health || exit 1
|
|
|
|
|
|
|
|
|
|
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar quarkus-run.jar"]
|