Docker Image für KoSIT Validator 1.6.0

KoSIT Validator 1.6.0 Docker Image mit XRechnung 3.0.2

Unser Validator nutzt den offiziellen KoSIT Validator in Version 1.6.0 mit den XRechnung 3.0.2 Scenario-Dateien.
Das Image findest Du auf Github unter apps4everything/kosit-validator.

docker run -d -p 8081:8081 --name kosit-validator apps4everything/kosit-validator:1.6.0

Hier aber trotzdem eine einfache Anleitung zum Nachbauen.

1. KoSIT Validator herunterladen

Lade den Validator 1.6.0 von GitHub:

wget https://github.com/itplr-kosit/validator/releases/download/v1.6.0/validator-1.6.0-distribution.zip
unzip validator-1.6.0-distribution.zip

2. XRechnung 3.0.2 Scenarios herunterladen

Die Scenarios enthalten die XRechnung-Regeln und Validierungs-XSLTs:

wget https://github.com/itplr-kosit/validator-configuration-xrechnung/releases/download/release-2025-07-10/validator-configuration-xrechnung_3.0.2_2025-07-10.zip
unzip validator-configuration-xrechnung_3.0.2_2025-07-10.zip

3. Dockerfile erstellen

Erstelle eine Datei namens Dockerfile mit folgendem Inhalt:

# Multi-stage build für KoSIT Validator 1.6.0 mit XRechnung 3.0.2
FROM eclipse-temurin:21-jre-alpine AS runtime

# Install wget for healthcheck
RUN apk add --no-cache wget

# Create non-root user for security
RUN addgroup -S appgroup && adduser -S appuser -G appgroup

# Set working directory
WORKDIR /app

# Copy KoSIT Validator 1.6.0
COPY validator-1.6.0-standalone.jar /app/validator.jar

# Copy XRechnung 3.0.2 scenario configuration
COPY scenarios.xml /app/
COPY EN16931-CII-validation.xslt /app/
COPY EN16931-UBL-validation.xslt /app/
COPY resources /app/resources

# Set permissions
RUN chown -R appuser:appgroup /app

# Switch to non-root user
USER appuser

# Expose HTTP port
EXPOSE 8081

# Healthcheck
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s \
    CMD wget -qO- http://localhost:8081/server/health || exit 1

# Run validator as HTTP daemon
CMD ["java", "-jar", "validator.jar", \
     "-s", "scenarios.xml", \
     "-r", "/app", \
     "-D", \
     "-H", "0.0.0.0", \
     "-P", "8081", \
     "--disable-gui"]

4. Image bauen

Baue das Docker Image:

docker build -t kosit-validator:1.6.0 .

Der Build dauert 1-2 Minuten, abhängig von deiner Internet-Verbindung.

5. Container starten

Starte den Container:

docker run -d -p 8081:8081 --name kosit-validator kosit-validator:1.6.0

Der Validator läuft jetzt auf http://localhost:8081.

6. Testen

Prüfe, ob der Service läuft:

curl http://localhost:8081/server/health
<healthtype xmlns:ns2="http://www.xoev.de/de/validator/framework/1/daemon"><ns2:status>UP</ns2:status><ns2:application><ns2:name>KoSIT Validator</ns2:name><ns2:version>1.6.0</ns2:version><ns2:build>${build.number}</ns2:build></ns2:application><ns2:memory><ns2:freeMemory>157835376</ns2:freeMemory><ns2:maxMemory>2032140288</ns2:maxMemory><ns2:totalMemory>378535936</ns2:totalMemory></ns2:memory></healthtype>
            

Du solltest ein XML mit einem Node "ns2:status" mit dem Wert "UP" und Informationen zum Speicherverbauch zurückbekommen.

Validiere eine XRechnung:

curl -X POST http://localhost:8081/ \
  -H "Content-Type: application/xml" \
  -d @deine-rechnung.xml

Du bekommst einen XML-Report zurück mit dem Validierungsergebnis.

Weiterführende Links