Dieser Abschnitt enthält Anweisungen zum Ausführen von ABBYY FineReader Engine 12 in einem Docker-Container. In diesem Szenario werden zwei Container verwendet:
ein Container mit ABBYY FineReader Engine
ein Container mit dem Licensing Service
Die Implementierung dieses Szenarios erhöht die Ausfallsicherheit und gewährleistet den kontinuierlichen Betrieb aller Container. Wenn einer der Container ausfällt, können Sie ihn neu starten, ohne den anderen zu unterbrechen.Für dieses Szenario wird eine Online License verwendet, die eine Verbindung zum Lizenzserver *.abbyy.com herstellt.
ABBYY Licensing Service kann jeweils nur mit einer Online License gleichzeitig arbeiten.
Für die Verwendung einer Online License müssen an jedem Installationsort von ABBYY Licensing Service die folgenden Bedingungen erfüllt sein:
Aktive Internetverbindung
Erlaubte Verbindungen zu *.abbyy.com über Port 443 (HTTPS)
GoDaddy Trusted Root Certification Authority
Das GoDaddy-Stammzertifikat für die Zertifizierungsstelle sollte in der lokalen Computerversion des Zertifikatspeichers „Trusted Root Certification Authorities“ installiert sein. Detaillierte Informationen zum Zertifikat finden Sie auf der GoDaddy-Website.
So führen Sie ABBYY FineReader Engine 12 in einem Docker-Container aus:
Laden Sie Docker for Windows herunter und installieren Sie es auf Ihrem Computer.
Aktivieren Sie die Windows-Features Hyper-V und Containers.
Wählen Sie während der Container-Installation die Option „Use Windows containers instead of Linux containers“ aus.
Erstellen Sie ein leeres Verzeichnis und legen Sie darin Folgendes ab:
docker-compose.yml — eine Docker-Compose-Konfigurationsdatei (siehe die Auflistung unten)
TestAppFolder — ein Verzeichnis mit
der Token-Datei der Online License
der Testanwendung, die so kompiliert wurde, dass sie diese Token-Datei sowie das zugehörige Kennwort und Ihre Customer Project ID verwendet
Dockerfile_ls — eine Dockerfile für einen Container mit dem Licensing Service (siehe die Auflistung unten)
Dockerfile_ls ist für das Erstellen eines Containers vorgesehen, der nur mit einem aus Dockerfile_worker erstellten Container verwendet wird. Konfigurieren Sie nicht mehrere Replikate eines Containers mit ABBYY FineReader Engine für die Arbeit mit einem einzelnen Licensing Service.
LicensingSettings_ls.xml - eine Datei mit Parametern für die Lizenzierung des Licensing Service (siehe die Auflistung unten)
DeployLS.ps1 — ein Skript zum Starten des Licensing Service (siehe die Auflistung unten)
Hinweis: Dieses Skript startet den Licensing Service mit dem Schalter /standalone. Mit diesem Schalter läuft der Licensing Service als Vordergrundprozess, was für den Einsatz in Docker-Containern die bewährte Vorgehensweise ist.
Dockerfile_worker — ein Dockerfile für einen Container mit ABBYY FineReader Engine und einer Testanwendung (Siehe die Auflistung unten)
LicensingSettings_worker.xml - eine Datei mit Parametern für die Lizenzierung der ABBYY FineReader Engine-Bibliothek (Siehe die Auflistung unten)
SetUpWorkerLicensing.ps1 - ein Skript zum Ersetzen des Servernamens in LicensingSettings_worker.xml durch den in docker-compose.yml angegebenen Namen (Siehe die Auflistung unten)
RunTestApp.ps1 — ein Befehlszeilenskript zum Ausführen der Testanwendung (Siehe die Auflistung unten)
Entpacken Sie das ABBYY FineReader Engine-Distributionspaket mit dem folgenden Befehl in das zuvor erstellte Verzeichnis:
Verwenden Sie den folgenden Befehl, um die Container zu erstellen und auszuführen:
docker-compose up
Die Ergebnisse beim Ausführen der Testanwendung werden in der Konsole angezeigt.
Wenn Sie Windows Server Core als Container-Basis-Image verwenden, richten Sie die Schriftarten nach dem Bereitstellen von ABBYY FineReader Engine ein, wie unter Arbeiten mit Schriftarten beschrieben.
FROM mcr.microsoft.com/windows/servercore:ltsc2019 as fre12installation# Kopieren Sie die extrahierte Bibliothek in den Ordner C:/app/FRE12ARG library_src="./FRE/FineReader Engine"ADD $library_src /app/FRE12ADD ./LicensingSettings_worker.xml /app/FRE12/Bin64/LicensingSettings.xml# Ersetzen Sie <service_address> in der LicensingSettings.xml des WorkersARG service_addressCOPY ./SetUpWorkerLicensing.ps1 /app/SetUpWorkerLicensing.ps1SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]RUN /app/SetUpWorkerLicensing.ps1 -ServerAddress $service_address# Kopieren Sie eine Testanwendung und führen Sie sie ausCOPY ./TestAppFolder /app/TestAppFolderCOPY ./RunTestApp.ps1 /app/RunTestApp.ps1CMD /app/RunTestApp.ps1
Param ([string]$service_address)# Skript zum Vorbereiten des Protokollordners für die Client-Lizenzierung und zum Festlegen von ServerAddress in LicesingSettings.xmlecho "Protokollordner wird vorbereitet:"echo "C:\ProgramData\ABBYY\SDK\12\Licenses"New-Item -Path "C:\ProgramData\ABBYY\SDK\12\Licenses" -ItemType Directoryecho "LicensingSettings.xml gefunden:"cd "C:/app/FRE12/Bin64"type LicensingSettings.xmlecho "Dienstadresse wird festgelegt auf: "echo $service_address((Get-Content -path LicensingSettings.xml -Raw) -replace '<server_address>',$Env:service_address) `| Set-Content -Path LicensingSettings.xmlecho "LicensingSettings.xml wurde gesetzt:"type LicensingSettings.xml
RunTestApp.ps1
# Skript zum Ausführen einer Testanwendung aus dem Ordner TestAppFolder# Starten der Testanwendung mit Argumenten (CommandLineInterface.exe wird als Testanwendung verwendet)cd C:\app\TestAppFolder.\CommandLineInterface.exe -pi -if Demo.tif -f PDF -of Demo.pdf# Um das Codebeispiel CommandLineInterface in einem Docker-Container zu verwenden, müssen Sie:# 1) Daten für den Docker-Container in SamplesConfig.h angeben:# - GetLicensePath, GetCustomerProjectId, GetLicensePassword# - L"C:\\app\\FRE12\\Bin64\\FREngine.dll" für GetFreDllPath# 2) Ihr Projekt für die x64-Konfiguration neu erstellen.# 3) die Lizenzdatei CommandLineInterface.exe, *.ABBYY.ActivationToken# und das Demo-Bild (Demo.tif) in den Ordner \TestAppFolder kopieren.