Einstellungen
Die Lizenz ist ein mehrzeiliger Text. Übergeben Sie sie mit
$(cat acme.fineparserlicense) oder aus einem Kubernetes Secret. Docker-.env-Dateien können keine mehrzeiligen Werte enthalten und eignen sich daher nicht für diese Variable.
Die Telemetrie verfügt über eigene Umgebungsvariablen, mit denen Sie den Stream prüfen oder eine Kopie an Ihren eigenen Collector senden können. Siehe Stream prüfen und kopieren.
Eine Konfiguration pro Container
Die Erkennungseinstellungen lassen sich nicht pro Anfrage ändern. Jedes Dokument, das ein Container empfängt, wird mit dem Modus und den Sprachen verarbeitet, mit denen er gestartet wurde. Wenn unterschiedliche Dokumentensätze unterschiedliche Einstellungen erfordern, betreiben Sie je Konfiguration einen eigenen Container und leiten Sie jede Anfrage an den passenden Container weiter. Ein Reverse-Proxy oder Ihr eigener Anwendungscode kann diese Entscheidung anhand der bereits bekannten Informationen über das Dokument treffen, etwa anhand seiner Herkunft oder seines Dateityps.Speicher
Die Ergebnisse werden als{jobId}/{name} in das Ausgabeverzeichnis geschrieben – neben einer kleinen Job-Datenbank, die alle Jobs erfasst. Das Image deklariert /app/output als Volume. Mounten Sie dort ein benanntes Volume oder ein Host-Verzeichnis, denn andernfalls erstellt Docker ein anonymes Volume und die Ergebnisse gehen verloren, sobald der Container entfernt wird.
/app/output eingehängtes Host-Verzeichnis für ihn beschreibbar sein.
Ein Container pro Ausgabeverzeichnis. Die Job-Datenbank ist gesperrt, solange sie geöffnet ist, sodass ein zweiter Container, der auf dasselbe Volume verweist, nicht startet. Wenn Sie mehrere Container betreiben, weisen Sie jedem ein eigenes Volume zu.
Uploads verbleiben nur so lange im Scratch-Verzeichnis, wie sie auf die Erkennung warten, und werden gelöscht, sobald diese abgeschlossen ist. Nichts im Scratch-Verzeichnis überdauert einen Job, daher ist dafür kein Volume erforderlich.
Ausführung auf ARM
Das FineParser-Image wird derzeit ausschließlich fürlinux/amd64 gebaut. Auf einem ARM-Host, etwa einem Mac mit Apple Silicon (M-Serie), muss Docker es im Kompatibilitätsmodus ausführen. Übergeben Sie dazu --platform linux/amd64 an docker run:
Container stoppen
Legen Sie für den Container ein Stop-Timeout von 60 Sekunden fest. Bei einem sauberen Stopp lässt FineParser laufende Anfragen zu Ende laufen, schreibt Telemetriedaten weg und beendet sich anschließend. Der Docker-Standardwert von 10 Sekunden unterbricht diesen Vorgang vorzeitig. Verwenden Sie--stop-timeout 60 mit docker run oder terminationGracePeriodSeconds: 60 in Kubernetes. Unter Neustarts und Herunterfahren erfahren Sie, was mit Jobs geschieht, die zu diesem Zeitpunkt in der Warteschlange stehen oder ausgeführt werden.
Netzwerkkonfiguration
FineParser lauscht innerhalb des Containers auf Port 8080. Veröffentlichen Sie diesen Port mit-p HOST:CONTAINER auf Ihrem Host, damit Sie Anfragen an ihn senden können. Mit -p 8080:8080 ist die API auf Host-Port 8080 von jedem Rechner im Netzwerk aus erreichbar, während -p 127.0.0.1:9000:8080 den Zugriff auf localhost über Port 9000 beschränkt. Die vollständige Syntax finden Sie unter Published ports in der Docker-Dokumentation.
Lizenz bestätigen
Rufen Sie im Servermodus/healthz auf. Ein lizenzierter Container meldet ready: true:
metering ready for instance …, die vor der Seitenzahl erscheint.
Ohne Lizenz funktioniert keiner der beiden Modi. Der Server meldet den Zustand „unhealthy“ und verarbeitet nichts:
