Cette section fournit des instructions pour exécuter ABBYY FineReader Engine 12 dans un conteneur Docker. Ce scénario utilise deux conteneurs :
un conteneur avec ABBYY FineReader Engine
un conteneur avec le service de licence
La mise en œuvre de ce scénario améliore la tolérance aux pannes et garantit le fonctionnement continu de tous les conteneurs. Si l’un des conteneurs tombe en panne, vous pouvez le redémarrer sans interrompre l’autre.Une licence en ligne, qui se connecte au serveur de licences *.abbyy.com, est utilisée dans ce scénario.
Le service de licence ABBYY ne peut fonctionner qu’avec une seule licence en ligne à la fois.
Vous devez remplir les conditions suivantes pour utiliser une licence en ligne partout où le service de licence ABBYY est installé :
Une connexion Internet active
Des connexions autorisées à *.abbyy.com sur le port 443 (HTTPS)
L’autorité de certification racine de confiance GoDaddy
Le certificat racine GoDaddy de l’autorité de certification doit être installé dans le magasin de certificats Autorités de certification racines de confiance de l’ordinateur local. Consultez les informations détaillées concernant ce certificat sur le site web de GoDaddy.
Pour exécuter ABBYY FineReader Engine 12 dans un conteneur Docker :
Activez les fonctionnalités Windows Hyper-V et Containers.
Sélectionnez l’option “Use Windows containers instead of Linux containers” lors de l’installation du conteneur.
Créez un répertoire vide et placez-y :
docker-compose.yml — un fichier de configuration Docker Compose (voir son contenu ci-dessous)
TestAppFolder — un répertoire contenant
le fichier jeton de licence en ligne
l’application de test compilée pour utiliser ce fichier jeton, ainsi que son mot de passe et votre Customer Project ID
Dockerfile_ls — un Dockerfile pour le conteneur avec le service de licence (voir son contenu ci-dessous)
Dockerfile_ls est destiné à créer un conteneur qui fonctionnera uniquement avec un seul conteneur créé à partir de Dockerfile_worker. Ne configurez pas plusieurs réplicas de conteneur avec ABBYY FineReader Engine pour fonctionner avec un seul service de licence.
LicensingSettings_ls.xml - un fichier contenant les paramètres de licence du service de licence (voir son contenu ci-dessous)
DeployLS.ps1 — un script pour démarrer le service de licence (voir son contenu ci-dessous)
Remarque : ce script exécute le service de licence avec la clé /standalone. Avec cette clé, le service de licence s’exécute au premier plan, ce qui constitue la bonne pratique pour les conteneurs Docker.
Dockerfile_worker — un Dockerfile pour un conteneur avec ABBYY FineReader Engine et une application de test (Voir sa définition ci-dessous)
LicensingSettings_worker.xml - un fichier contenant les paramètres de licence de la bibliothèque ABBYY FineReader Engine (Voir sa définition ci-dessous)
SetUpWorkerLicensing.ps1 - un script permettant de remplacer le nom du serveur dans LicensingSettings_worker.xml par le nom spécifié dans docker-compose.yml (Voir sa définition ci-dessous)
RunTestApp.ps1 — un script en ligne de commande permettant d’exécuter l’application de test (Voir sa définition ci-dessous)
Décompressez le package de distribution ABBYY FineReader Engine dans le répertoire créé précédemment à l’aide de la commande :
Pour créer et exécuter les conteneurs, utilisez la commande suivante :
docker-compose up
Les résultats de l’exécution de l’application de test s’afficheront dans la console.
Si vous utilisez Windows Server Core comme image de base du conteneur, configurez les polices après le déploiement d’ABBYY FineReader Engine, comme indiqué dans Utilisation des polices
# Copier le service de licenceFROM mcr.microsoft.com/windows/servercore:ltsc2019 as fre12_lsWORKDIR /appADD ./FRE/Licensing /app/FRE_LicensingADD ./LicensingSettings_ls.xml /app/FRE_Licensing/LicensingSettings.xmlWORKDIR /app/FRE_Licensing# Installation du service de licenceCOPY ./DeployLS.ps1 /app/DeployLS.ps1EXPOSE 3022SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]ENTRYPOINT /app/DeployLS.ps1
FROM mcr.microsoft.com/windows/servercore:ltsc2019 as fre12installation# Copier la bibliothèque extraite dans le dossier C:/app/FRE12ARG library_src="./FRE/FineReader Engine"ADD $library_src /app/FRE12ADD ./LicensingSettings_worker.xml /app/FRE12/Bin64/LicensingSettings.xml# Remplacer <service_address> dans le fichier LicensingSettings.xml du workerARG service_addressCOPY ./SetUpWorkerLicensing.ps1 /app/SetUpWorkerLicensing.ps1SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]RUN /app/SetUpWorkerLicensing.ps1 -ServerAddress $service_address# Copier et exécuter une application de testCOPY ./TestAppFolder /app/TestAppFolderCOPY ./RunTestApp.ps1 /app/RunTestApp.ps1CMD /app/RunTestApp.ps1
Param ([string]$service_address)# Script pour préparer le dossier de journalisation de la licence côté client et définir ServerAddress dans LicesingSettings.xmlecho "Preparing logging folder:"echo "C:\ProgramData\ABBYY\SDK\12\Licenses"New-Item -Path "C:\ProgramData\ABBYY\SDK\12\Licenses" -ItemType Directoryecho "LicensingSettings.xml found:"cd "C:/app/FRE12/Bin64"type LicensingSettings.xmlecho "Setting service address to: "echo $service_address((Get-Content -path LicensingSettings.xml -Raw) -replace '<server_address>',$Env:service_address) `| Set-Content -Path LicensingSettings.xmlecho "LicensingSettings.xml was set:"type LicensingSettings.xml
RunTestApp.ps1
# Script permettant d’exécuter une application de test depuis le dossier TestAppFolder# Lancement de l'application de test avec des arguments (CommandLineInterface.exe est utilisée comme application de test)cd C:\app\TestAppFolder.\CommandLineInterface.exe -pi -if Demo.tif -f PDF -of Demo.pdf# Pour utiliser l’exemple de code CommandLineInterface dans un conteneur Docker, vous devez :# 1) spécifier les données du conteneur Docker dans SamplesConfig.h :# - GetLicensePath, GetCustomerProjectId, GetLicensePassword# - L"C:\\app\\FRE12\\Bin64\\FREngine.dll" pour GetFreDllPath# 2) recompiler votre projet pour la configuration x64.# 3) copier CommandLineInterface.exe, le fichier de licence *.ABBYY.ActivationToken# et l’image de démonstration (Demo.tif) dans le dossier \TestAppFolder.