Passer au contenu principal
Cette rubrique existe également pour Linux.
Cette section fournit des instructions pour exécuter ABBYY FineReader Engine 12 dans un conteneur Docker. Ce scénario utilise deux conteneurs :
  1. un conteneur avec ABBYY FineReader Engine
  2. 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 avez besoin des éléments suivants :
  • votre Customer Project ID
  • d’un fichier jeton de licence en ligne
  • du mot de passe du fichier jeton de licence
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 :
  1. Téléchargez et installez Docker for Windows sur votre machine.
  2. Activez les fonctionnalités Windows Hyper-V et Containers.
  3. Sélectionnez l’option “Use Windows containers instead of Linux containers” lors de l’installation du conteneur.
  4. 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)
  1. Décompressez le package de distribution ABBYY FineReader Engine dans le répertoire créé précédemment à l’aide de la commande :
installRnt64.exe /extract InstallDir="<your_directory>/FRE"
  1. 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
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
# Copier le service de licence
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
# Installation du service de licence
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
# Copier la bibliothèque extraite dans le dossier C:/app/FRE12
ARG library_src="./FRE/FineReader Engine"
ADD $library_src /app/FRE12
ADD ./LicensingSettings_worker.xml /app/FRE12/Bin64/LicensingSettings.xml
# Remplacer <service_address> dans le fichier LicensingSettings.xml du worker
ARG service_address
COPY ./SetUpWorkerLicensing.ps1 /app/SetUpWorkerLicensing.ps1
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN /app/SetUpWorkerLicensing.ps1 -ServerAddress $service_address
# Copier et exécuter une application de test
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
)
# Script pour préparer le dossier de journalisation de la licence côté client et définir ServerAddress dans LicesingSettings.xml
echo "Preparing logging folder:"
echo "C:\ProgramData\ABBYY\SDK\12\Licenses"
New-Item -Path "C:\ProgramData\ABBYY\SDK\12\Licenses" -ItemType Directory
echo "LicensingSettings.xml found:"
cd "C:/app/FRE12/Bin64"
type LicensingSettings.xml
echo "Setting service address to: "
echo $service_address
((Get-Content -path LicensingSettings.xml -Raw) -replace '<server_address>',$Env:service_address) `
| Set-Content -Path LicensingSettings.xml
echo "LicensingSettings.xml was set:"
type LicensingSettings.xml
# 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.

Voir aussi

Installation du service de licence sous Windows Licence Activation