Dieses Thema beschreibt, wie Sie ABBYY FineReader Engine 12 in Docker-Containern unter Linux ausführen. In diesem Thema werden zwei Einrichtungsoptionen behandelt:Documentation Index
Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
Use this file to discover all available pages before exploring further.
| Option | Beschreibung |
|---|---|
| Einzelner Container | Licensing Service und FRE-Worker zusammen in einem Container gebündelt. Einfacher; gut für Tests, Demos und einmalige OCR-Jobs. |
| Zwei Container | Licensing Service und FRE-Worker in separaten Containern. Bessere Fehlertoleranz; wenn einer abstürzt, kann er neu gestartet werden, ohne den anderen zu beeinträchtigen. Mehrere Worker können sich einen Licensing Service teilen. |
ubuntu:noble (24.04 LTS).
Lizenztypen
Online-Lizenz
Details zur Online-Lizenz
Details zur Online-Lizenz
- Dateinamenmuster:
XXXXXXXXXXXXXXXXXXXX.ABBYY.ActivationToken - Wird zur Laufzeit über
*.abbyy.comüberprüft — für jeden Container-Start ist ein Internetzugang erforderlich. - Voraussetzungen überall, wo der Licensing Service installiert ist:
- Aktive Internetverbindung
- Ausgehende HTTPS-Verbindungen (Port 443) zu
*.abbyy.commüssen erlaubt sein - GoDaddy Trusted Root CA im Systempaket
ca-certificates(bereits inubuntu:nobleenthalten)
- Eine einzelne Licensing Service-Instanz kann jeweils nur mit einer Online-Lizenz gleichzeitig arbeiten.
Lokale Lizenz
Details zur lokalen Lizenz
Details zur lokalen Lizenz
- Dateinamenmuster:
XXXX-XXXX-XXXX-XXXX-XXXX-XXXX.ABBYY.LocalLicense - Wird während des Builds bei der FRE-Installation aktiviert und anschließend ins Image integriert.
- Keine Internetverbindung zur Laufzeit erforderlich — ideal für Air-Gap-Umgebungen.
Erste Schritte
- Docker und Docker Compose (
docker compose-Syntax v2) müssen installiert sein - das Linux-Installationsprogramm für ABBYY FineReader Engine 12:
FRE*.sh - eine Lizenzdatei (
.ABBYY.ActivationTokenoder.ABBYY.LocalLicense) und das Kennwort
Einrichtungsoption 1 — Einzelner Container
Details zum einzelnen Container
Details zum einzelnen Container
Diese Option führt den Licensing Service und den FRE-Worker in einem Container aus. Der Einstiegspunkt startet den Licensing Service im Hintergrund, wartet kurz, bis dieser bereit ist, führt das CLI-Sample aus, gibt die Ausgabe aus und beendet beim Beenden alle Prozesse ordnungsgemäß.Empfohlen für lokale Tests, Demos und CI-Jobs, bei denen ein einziger Befehl zum Starten und Stoppen genügt.
Dies ist ein zweistufiger Build:
Dateien
Erstellen Sie ein leeres Verzeichnis und fügen Sie die folgenden Dateien hinzu:Dockerfile— erstellt das kombinierte Docker-Image (siehe unten)entrypoint.sh— startet den LS, führt das CLI-Beispiel aus und gibt das Ergebnis aus (unten aufgeführt)docker-compose.yml— baut und startet den Container (unten aufgeführt).env— enthält den Namen Ihrer Lizenzdatei und Ihr Kennwort (unten aufgeführt)
Erstellen und ausführen
-
Kopieren Sie Ihr
FRE*.sh-Installationsprogramm und Ihre Lizenzdatei in das Verzeichnis, das Sie oben angelegt haben. -
Erstellen Sie eine
.env-Datei mit den Werten Ihrer Lizenz (siehe unten). -
Führen Sie in diesem Verzeichnis den folgenden Befehl aus, um das Image zu erstellen und den Container zu starten:
Demo.tif mithilfe von Optical Character Recognition (OCR) und gibt den erkannten Text auf der Konsole aus..env
docker-compose.yml
Dockerfile
Dies ist ein zweistufiger Build:- In Stufe 1 wird
gcc:8verwendet, um FRE zu installieren und das CLI-Beispiel zu kompilieren. - Stufe 2 erstellt ein minimales
ubuntu:noble-Runtime-Image und kopiert die Binärdateien des Licensing Service, die FRE-Runtime, das kompilierte Beispiel und die Lizenzdatei hinein.
entrypoint.sh
Einrichtungsoption 2 — Zwei Container
Details zu den beiden Containern
Details zu den beiden Containern
Bei dieser Option werden der Licensing Service und der FRE-Worker in separaten Containern in einem gemeinsamen Docker Compose-Netzwerk ausgeführt. Der Worker kommuniziert mit dem Licensing Service über TCP unter
Einige wichtige Hinweise:
Dies ist ein zweistufiger Build:
Dies ist ein zweistufiger Build:
Der Einstiegspunkt des Workers ist einfacher als bei der Single-Container-Version, da er den Licensing Service nicht verwaltet. Der Worker führt lediglich das Sample aus und gibt die Ausgabe aus.
ls:3023.Empfohlen für Produktivumgebungen. Wenn die Dienste in separaten Containern ausgeführt werden, kann Docker jeden von beiden unabhängig neu starten, falls er abstürzt. Außerdem können so mehrere Worker eine Verbindung zum selben Licensing Service herstellen.Dateien
Erstellen Sie ein leeres Verzeichnis und fügen Sie die folgenden Dateien hinzu:Dockerfile_ls— erstellt den Container für den Licensing Service (unten aufgeführt)Dockerfile_worker— erstellt den FRE-Worker-Container (siehe unten)entrypoint.sh— führt das CLI-Beispiel im Worker aus (wie unten aufgeführt)docker-compose.yml— verknüpft die beiden Container miteinander (wie unten aufgeführt).env— enthält den Dateinamen Ihrer Lizenz und Ihr Kennwort (gleiches Format wie bei Setup 1)
Erstellen und ausführen
-
Kopieren Sie Ihr
FRE*.sh-Installationsprogramm und die Lizenzdatei in das Verzeichnis. -
Erstellen Sie eine
.env-Datei mit den Werten Ihrer Lizenz. -
Führen Sie in diesem Verzeichnis Folgendes aus:
Demo.tif ausführt und das Ergebnis ausgibt.docker-compose.yml
- Der Worker verwendet
depends_on: [ls], damit der Licensing Service-Container zuerst startet. - Beide Dienste verwenden
restart: on-failure, sodass sie unabhängig voneinander wieder starten können. - Das
service_address-Build-Argument des Workers istls:3023— das integrierte DNS von Docker Compose löstlszum Licensing Service-Container auf. shm_size: 1gwird für den Worker und nicht für den Licensing Service konfiguriert, da FRE Shared Memory benötigt.
Dockerfile_ls
Dies ist ein zweistufiger Build:- Stufe 1 führt das FRE-Installationsprogramm mit
--skip-local-license-activationaus, um die Binärdateien des Licensing Service zu entpacken. - Stufe 2 erstellt ein minimales
ubuntu:noble-Runtime-Image, gibt Port3023frei und führtLicensingService /standaloneals PID 1 aus. Das Flag/standalonehält den Licensing Service im Vordergrund, was in Docker der richtige Ansatz ist (ein Vordergrundprozess schreibt Protokolle in die Standardausgabe und wird sauber beendet, wenn der Container gestoppt wird).
Dockerfile_worker
Dies ist ein zweistufiger Build:- Stufe 1 installiert FRE mit
--developer-install, wobei--service-addressauf den Licensing Service-Container verweist, und kompiliert dann das CLI-Beispiel. - Stufe 2 erstellt ein minimales
ubuntu:noble-Runtime-Image, das nur die FRE-Binärdateien, das kompilierte Beispiel und das Demo-Image enthält. Da der Worker über das Netzwerk mit demls-Container kommuniziert, sind keine Binärdateien des Licensing Service enthalten.
entrypoint.sh
Der Einstiegspunkt des Workers ist einfacher als bei der Single-Container-Version, da er den Licensing Service nicht verwaltet. Der Worker führt lediglich das Sample aus und gibt die Ausgabe aus.Anpassen des CLI-Beispiels
docker-compose.yml aus:
-if— Eingabedatei-f— Ausgabeformatprofil-of— Ausgabedatei
Passen Sie diese Zeile an, sodass sie auf eine andere Eingabe-, Ausgabe- oder Formatprofildatei verweist. Siehe
die Dokumentation der FRE Code Samples Library für die vollständige Liste der CLI-Argumente.
/app ein und verweisen Sie -if/-of auf Dateien darin.
Häufige Probleme
shm_size: 1gist zwingend erforderlich. FRE ist auf POSIX Shared Memory angewiesen, und die standardmäßige Zuweisung von 64 MB für/dev/shmreicht nicht aus. Die obigen Compose-Dateien setzen dies beim Worker-Service bereits.- Das Installationsprogramm und die Lizenzdatei müssen im Build-Kontext vorhanden sein. Beide Dockerfiles
COPYenFRE*.shund die Lizenzdatei — befinden sie sich nicht in dem Verzeichnis, aus dem Sie den Build starten, schlägt der Build sofort fehl. Binden Sie die Lizenz nicht zur Laufzeit ein. Sie wird während des Builds aktiviert. - Online-Lizenzen benötigen ausgehenden Netzwerkzugriff sowohl vom Builder als auch von der Laufzeitumgebung. Der Builder benötigt ihn für die Aktivierung; der Licensing Service der Runtime benötigt ihn, um die Lizenz fortlaufend zu validieren.
- Committen Sie keine Lizenzdateien oder Installationsprogramme. Fügen Sie in der Quellcodeverwaltung
.env,*.ABBYY.*undFRE*.shzu Ihrer Ignore-Liste hinzu, und nehmen Sie sie nicht in veröffentlichte Images auf, wenn Sie die Folgen und Risiken nicht genau kennen. - Diese Beispiele verwenden
ubuntu:noble(24.04 LTS). In früheren Dokumentationen wurde auf Ubuntu bionic verwiesen, das inzwischen End-of-Life ist. Paketnamen unterscheiden sich je nach Ubuntu-Release. Zum Beispiel:libgcc-8-devheißt jetztlibgcc-s1undlibstdc++-8-devjetztlibstdc++6. Wenn Sie ein anderes Basis-Image verwenden, prüfen Sie die Paketliste entsprechend.
