Zum Hauptinhalt springen
Dieses Thema ist auch für Linux verfügbar.
Dieser Abschnitt enthält Anweisungen zum Ausführen von ABBYY FineReader Engine 12 in einem Docker-Container. In diesem Szenario werden zwei Container verwendet:
  1. ein Container mit ABBYY FineReader Engine
  2. 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.
Sie benötigen:
  • Ihre Customer Project ID
  • eine Token-Datei der Online License
  • das Kennwort für die Lizenz-Token-Datei
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:
  1. Laden Sie Docker for Windows herunter und installieren Sie es auf Ihrem Computer.
  2. Aktivieren Sie die Windows-Features Hyper-V und Containers.
  3. Wählen Sie während der Container-Installation die Option „Use Windows containers instead of Linux containers“ aus.
  4. 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)
  1. Entpacken Sie das ABBYY FineReader Engine-Distributionspaket mit dem folgenden Befehl in das zuvor erstellte Verzeichnis:
installRnt64.exe /extract InstallDir="<your_directory>/FRE"
  1. 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.
version: '3'
services:
  ls:
    build:
      context: .
      dockerfile: Dockerfile_ls
    hostname: servername
    networks:
      frenet:
        aliases:
          - servername
    restart: on-failure
  worker:
    build:
      context: .
      dockerfile: Dockerfile_worker
      args:
        - service_address=servername
    depends_on:
      - ls
    networks:
      frenet:
    restart: on-failure
networks:
  frenet:
Dockerfile_ls
# Licensing Service kopieren
FROM mcr.microsoft.com/windows/servercore:ltsc2019 as fre12_ls
WORKDIR /app
ADD ./FRE/Licensing /app/FRE_Licensing
ADD ./LicensingSettings_ls.xml /app/FRE_Licensing/LicensingSettings.xml
WORKDIR /app/FRE_Licensing
# Licensing Service installieren
COPY ./DeployLS.ps1 /app/DeployLS.ps1
EXPOSE 3022
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
ENTRYPOINT /app/DeployLS.ps1
LicensingSettings_ls.xml
<?xml version="1.0" encoding="utf-8"?>
<LicensingSettings xmlns="http://www.abbyy.com/Protection/LicensingSettings">
  <LocalLicenseServer>
    <ConnectionProtocol ProtocolType="TCP/IP" />
  </LocalLicenseServer>
</LicensingSettings>
echo "Preparing logging folder:"
$folder = "C:\ProgramData\ABBYY\SDK\12\Licenses"
echo $folder
if( (Test-Path -Path $folder) -ne $True ) {
    New-Item -Path $folder -ItemType Directory
}
echo "LicensingSettings.xml found:"
cd "C:/app/FRE_Licensing"
type LicensingSettings.xml
echo "Starting license service..."
.\LicensingService.exe /standalone
 
echo "License service stopped."
return 500
Dockerfile_worker
FROM mcr.microsoft.com/windows/servercore:ltsc2019 as fre12installation
# Kopieren Sie die extrahierte Bibliothek in den Ordner C:/app/FRE12
ARG library_src="./FRE/FineReader Engine"
ADD $library_src /app/FRE12
ADD ./LicensingSettings_worker.xml /app/FRE12/Bin64/LicensingSettings.xml
# Ersetzen Sie <service_address> in der LicensingSettings.xml des Workers
ARG service_address
COPY ./SetUpWorkerLicensing.ps1 /app/SetUpWorkerLicensing.ps1
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN /app/SetUpWorkerLicensing.ps1 -ServerAddress $service_address
# Kopieren Sie eine Testanwendung und führen Sie sie aus
COPY ./TestAppFolder /app/TestAppFolder
COPY ./RunTestApp.ps1 /app/RunTestApp.ps1
CMD /app/RunTestApp.ps1
LicensingSettings_worker.xml
<?xml version="1.0" encoding="utf-8"?>
<LicensingSettings xmlns="http://www.abbyy.com/Protection/LicensingSettings">
  <LicensingServers>
    <MainNetworkLicenseServer ServerAddress="<server_address>" ProtocolType="TCP/IP" />
  </LicensingServers>
</LicensingSettings>
Param (
[string]$service_address
)
# Skript zum Vorbereiten des Protokollordners für die Client-Lizenzierung und zum Festlegen von ServerAddress in LicesingSettings.xml
echo "Protokollordner wird vorbereitet:"
echo "C:\ProgramData\ABBYY\SDK\12\Licenses"
New-Item -Path "C:\ProgramData\ABBYY\SDK\12\Licenses" -ItemType Directory
echo "LicensingSettings.xml gefunden:"
cd "C:/app/FRE12/Bin64"
type LicensingSettings.xml
echo "Dienstadresse wird festgelegt auf: "
echo $service_address
((Get-Content -path LicensingSettings.xml -Raw) -replace '<server_address>',$Env:service_address) `
| Set-Content -Path LicensingSettings.xml
echo "LicensingSettings.xml wurde gesetzt:"
type LicensingSettings.xml
# 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.

Siehe auch

Installation des Licensing Service unter Windows Lizenzierung Aktivierung