Questa sezione fornisce istruzioni su come eseguire ABBYY FineReader Engine 12 all’interno di un container Docker. Questo scenario utilizza due container:
un container con ABBYY FineReader Engine
un container con il servizio di gestione delle licenze
L’implementazione di questo scenario aumenta la tolleranza ai guasti e garantisce il funzionamento continuo di tutti i container. Se uno dei container si arresta in modo anomalo, puoi riavviarlo senza interrompere gli altri.Per questo scenario viene utilizzata una Licenza online, che si connette al server licenze *.abbyy.com.
ABBYY Licensing Service può funzionare solo con una Licenza online alla volta.
Per utilizzare una Licenza online ovunque sia installato ABBYY Licensing Service, devono essere soddisfatte le seguenti condizioni:
Connessione Internet attiva
Connessioni consentite a *.abbyy.com sulla porta 443 (HTTPS)
GoDaddy Trusted Root Certification Authority
Il certificato radice GoDaddy per l’autorità di certificazione deve essere installato nell’archivio certificati Trusted Root Certification Authorities del computer locale. Per informazioni dettagliate sul certificato, consulta il sito web di GoDaddy.
Per eseguire ABBYY FineReader Engine 12 in un container Docker:
Abilita le funzionalità Windows Hyper-V e Containers.
Durante l’installazione del container, seleziona l’opzione “Use Windows containers instead of Linux containers”.
Crea una directory vuota e inserisci al suo interno:
docker-compose.yml — un file di configurazione di Docker Compose (vedi il relativo contenuto di seguito)
TestAppFolder — una directory contenente
il file token della Licenza online
l’applicazione di test compilata per utilizzare questo file token, nonché la relativa password e il tuo Customer Project ID
Dockerfile_ls — un Dockerfile per il container con il servizio di gestione delle licenze (vedi il relativo contenuto di seguito)
Dockerfile_ls è destinato alla creazione di un container che funzionerà solo con un singolo container creato da Dockerfile_worker . Non configurare più repliche del container con ABBYY FineReader Engine per operare con un singolo servizio di gestione delle licenze.
LicensingSettings_ls.xml - un file con i parametri di gestione delle licenze per il servizio di gestione delle licenze (vedi il relativo contenuto di seguito)
DeployLS.ps1 — uno script per avviare il servizio di gestione delle licenze (vedi il relativo contenuto di seguito)
Nota: questo script avvia il servizio di gestione delle licenze con la chiave /standalone. Con questa chiave, il servizio di gestione delle licenze viene eseguito come processo in primo piano, che rappresenta la procedura consigliata per l’utilizzo nei container Docker.
Dockerfile_worker — un Dockerfile per il container con ABBYY FineReader Engine e l’applicazione di test (Vedi il contenuto di seguito)
LicensingSettings_worker.xml - un file con i parametri di gestione delle licenze per la libreria ABBYY FineReader Engine (Vedi il contenuto di seguito)
SetUpWorkerLicensing.ps1 - uno script per sostituire il nome del server in LicensingSettings_worker.xml con il nome specificato in docker-compose.yml (Vedi il contenuto di seguito)
RunTestApp.ps1 — uno script da riga di comando per eseguire l’applicazione di test (Vedi il contenuto di seguito)
Estrai il pacchetto di distribuzione di ABBYY FineReader Engine nella directory creata in precedenza con il comando:
Per creare ed eseguire i container, utilizza il comando seguente:
docker-compose up
I risultati dell’esecuzione dell’applicazione di test verranno visualizzati nella console.
Se utilizzi Windows Server Core come immagine di base del container, configura i font dopo aver distribuito ABBYY FineReader Engine, come descritto in Uso dei font
# Copia del servizio di gestione delle licenzeFROM 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# Installazione del servizio di gestione delle licenzeCOPY ./DeployLS.ps1 /app/DeployLS.ps1EXPOSE 3022SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]ENTRYPOINT /app/DeployLS.ps1
echo "Preparazione della cartella dei log:"$folder = "C:\ProgramData\ABBYY\SDK\12\Licenses"echo $folderif( (Test-Path -Path $folder) -ne $True ) { New-Item -Path $folder -ItemType Directory}echo "LicensingSettings.xml trovato:"cd "C:/app/FRE_Licensing"type LicensingSettings.xmlecho "Avvio del servizio di gestione delle licenze...".\LicensingService.exe /standaloneecho "Servizio di gestione delle licenze arrestato."return 500
Dockerfile_worker
Dockerfile_worker
FROM mcr.microsoft.com/windows/servercore:ltsc2019 as fre12installation# Copia la libreria estratta nella cartella C:/app/FRE12ARG library_src="./FRE/FineReader Engine"ADD $library_src /app/FRE12ADD ./LicensingSettings_worker.xml /app/FRE12/Bin64/LicensingSettings.xml# Sostituisce <service_address> nel file LicensingSetting.xml del workerARG service_addressCOPY ./SetUpWorkerLicensing.ps1 /app/SetUpWorkerLicensing.ps1SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]RUN /app/SetUpWorkerLicensing.ps1 -ServerAddress $service_address# Copia ed esegue un'applicazione di testCOPY ./TestAppFolder /app/TestAppFolderCOPY ./RunTestApp.ps1 /app/RunTestApp.ps1CMD /app/RunTestApp.ps1
Param ([string]$service_address)# Script per preparare la cartella dei log della gestione delle licenze del client e impostare ServerAddress in 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 per eseguire un'applicazione di test dalla cartella TestAppFolder# Avvia l'applicazione di test con argomenti (CommandLineInterface.exe viene usato come applicazione di test)cd C:\app\TestAppFolder.\CommandLineInterface.exe -pi -if Demo.tif -f PDF -of Demo.pdf# Per utilizzare l'esempio di codice CommandLineInterface in un container Docker, è necessario:# 1)specificare i dati del container Docker in SamplesConfig.h:# - GetLicensePath, GetCustomerProjectId, GetLicensePassword# - L"C:\\app\\FRE12\\Bin64\\FREngine.dll" come GetFreDllPath# 2)ricompilare il progetto per la configurazione x64.# 3)copiare nella cartella \TestAppFolder il file di licenza CommandLineInterface.exe, *.ABBYY.ActivationToken# e l'immagine demo (Demo.tif).