Esta seção fornece instruções para executar o ABBYY FineReader Engine 12 em um contêiner Docker. Este cenário usa dois contêineres:
um contêiner com o ABBYY FineReader Engine
um contêiner com o ABBYY Serviço de Licenciamento
A implementação desse cenário aumenta a tolerância a falhas e garante a operação contínua de todos os contêineres. Se um dos contêineres falhar, você poderá reiniciá-lo sem interromper o outro.Uma Licença Online, que se conecta ao servidor de licenças *.abbyy.com, é usada neste cenário.
O ABBYY Serviço de Licenciamento pode funcionar com apenas uma Licença Online por vez.
Para usar uma Licença Online em qualquer lugar em que o ABBYY Serviço de Licenciamento esteja instalado, você precisa atender às seguintes condições:
Conexão ativa com a Internet
Conexões permitidas com *.abbyy.com na porta 443 (HTTPS)
GoDaddy Trusted Root Certification Authority
O certificado raiz da autoridade certificadora GoDaddy deve ser instalado no repositório de certificados Trusted Root Certification Authorities da máquina local. Consulte informações detalhadas sobre o certificado no site da GoDaddy.
Para executar o ABBYY FineReader Engine 12 em um contêiner Docker:
Habilite os recursos Hyper-V e Containers do Windows.
Selecione a opção “Use Windows containers instead of Linux containers” durante a instalação do contêiner.
Crie um diretório vazio e coloque nele:
docker-compose.yml — uma configuração do Docker Compose (veja a listagem abaixo)
TestAppFolder — um diretório com
o arquivo de token da Licença Online
o aplicativo de teste compilado para usar esse arquivo de token, bem como a senha correspondente e seu ID do projeto do cliente
Dockerfile_ls — um Dockerfile para o contêiner com o ABBYY Serviço de Licenciamento (veja a listagem abaixo)
O Dockerfile_ls foi projetado para criar um contêiner que funcionará com apenas um contêiner criado a partir do Dockerfile_worker . Não configure várias réplicas do contêiner com o ABBYY FineReader Engine para funcionar com um único ABBYY Serviço de Licenciamento.
LicensingSettings_ls.xml - um arquivo com parâmetros de licenciamento do ABBYY Serviço de Licenciamento (veja a listagem abaixo)
DeployLS.ps1 — um script para iniciar o ABBYY Serviço de Licenciamento (veja a listagem abaixo)
Observação: este script executa o ABBYY Serviço de Licenciamento com a chave /standalone. Com essa chave, o ABBYY Serviço de Licenciamento funciona como um processo em primeiro plano, o que é a prática recomendada para trabalhar em contêineres Docker.
Dockerfile_worker — um Dockerfile para um contêiner com o ABBYY FineReader Engine e um aplicativo de teste (Veja a listagem abaixo)
LicensingSettings_worker.xml - um arquivo com parâmetros de licenciamento da biblioteca ABBYY FineReader Engine (Veja a listagem abaixo)
SetUpWorkerLicensing.ps1 - um script para substituir o nome do servidor em LicensingSettings_worker.xml pelo nome especificado em docker-compose.yml (Veja a listagem abaixo)
RunTestApp.ps1 — um script de linha de comando para executar o aplicativo de teste (Veja a listagem abaixo)
Descompacte o pacote de distribuição do ABBYY FineReader Engine no diretório criado anteriormente com o comando:
Para criar e executar os contêineres, use o seguinte comando:
docker-compose up
Os resultados da execução do aplicativo de teste serão exibidos no console.
Se você usar o Windows Server Core como imagem base do contêiner, configure as fontes após implantar o ABBYY FineReader Engine, conforme descrito em Como trabalhar com fontes
echo "Preparando a pasta de registro:"$folder = "C:\ProgramData\ABBYY\SDK\12\Licenses"echo $folderif( (Test-Path -Path $folder) -ne $True ) { New-Item -Path $folder -ItemType Directory}echo "Arquivo LicensingSettings.xml encontrado:"cd "C:/app/FRE_Licensing"type LicensingSettings.xmlecho "Iniciando o serviço de licenciamento...".\LicensingService.exe /standaloneecho "Serviço de licenciamento interrompido."return 500
Dockerfile_worker
Dockerfile_worker
FROM mcr.microsoft.com/windows/servercore:ltsc2019 as fre12installation# Copie a biblioteca extraída para a pasta C:/app/FRE12ARG library_src="./FRE/FineReader Engine"ADD $library_src /app/FRE12ADD ./LicensingSettings_worker.xml /app/FRE12/Bin64/LicensingSettings.xml# Substitua <service_address> em LicensingSettings.xml do workerARG service_addressCOPY ./SetUpWorkerLicensing.ps1 /app/SetUpWorkerLicensing.ps1SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]RUN /app/SetUpWorkerLicensing.ps1 -ServerAddress $service_address# Copie e execute uma aplicação de testeCOPY ./TestAppFolder /app/TestAppFolderCOPY ./RunTestApp.ps1 /app/RunTestApp.ps1CMD /app/RunTestApp.ps1
Param ([string]$service_address)# Script para preparar a pasta de registro de licenciamento do cliente e definir ServerAddress em LicensingSettings.xmlecho "Preparando a pasta de registro:"echo "C:\ProgramData\ABBYY\SDK\12\Licenses"New-Item -Path "C:\ProgramData\ABBYY\SDK\12\Licenses" -ItemType Directoryecho "LicensingSettings.xml encontrado:"cd "C:/app/FRE12/Bin64"type LicensingSettings.xmlecho "Definindo o endereço do serviço como: "echo $service_address((Get-Content -path LicensingSettings.xml -Raw) -replace '<server_address>',$Env:service_address) `| Set-Content -Path LicensingSettings.xmlecho "LicensingSettings.xml foi definido:"type LicensingSettings.xml
RunTestApp.ps1
# Script para executar uma aplicação de teste da pasta TestAppFolder# Inicia a aplicação de teste com argumentos (CommandLineInterface.exe é usada como aplicação de teste)cd C:\app\TestAppFolder.\CommandLineInterface.exe -pi -if Demo.tif -f PDF -of Demo.pdf# Para usar o exemplo de código CommandLineInterface em um contêiner Docker, você precisa:# 1) especificar os dados do contêiner Docker em SamplesConfig.h:# - GetLicensePath, GetCustomerProjectId, GetLicensePassword# - L"C:\\app\\FRE12\\Bin64\\FREngine.dll" como GetFreDllPath# 2) recompilar seu projeto para a configuração x64.# 3) copiar o arquivo CommandLineInterface.exe, o arquivo de licença *.ABBYY.ActivationToken# e a imagem de demonstração (Demo.tif) para a pasta \TestAppFolder.