Pular para o conteúdo principal
Este tópico também está disponível para Linux.
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:
  1. um contêiner com o ABBYY FineReader Engine
  2. 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.
Você precisa de:
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:
  1. Baixe e instale o Docker for Windows em sua máquina.
  2. Habilite os recursos Hyper-V e Containers do Windows.
  3. Selecione a opção “Use Windows containers instead of Linux containers” durante a instalação do contêiner.
  4. 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)
  1. Descompacte o pacote de distribuição do ABBYY FineReader Engine no diretório criado anteriormente com o comando:
installRnt64.exe /extract InstallDir="<your_directory>/FRE"
  1. 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
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
# Copiar o serviço de licenciamento
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
# Instalar o serviço de licenciamento
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 "Preparando a pasta de registro:"
$folder = "C:\ProgramData\ABBYY\SDK\12\Licenses"
echo $folder
if( (Test-Path -Path $folder) -ne $True ) {
    New-Item -Path $folder -ItemType Directory
}
echo "Arquivo LicensingSettings.xml encontrado:"
cd "C:/app/FRE_Licensing"
type LicensingSettings.xml
echo "Iniciando o serviço de licenciamento..."
.\LicensingService.exe /standalone
 
echo "Serviço de licenciamento interrompido."
return 500
Dockerfile_worker
FROM mcr.microsoft.com/windows/servercore:ltsc2019 as fre12installation
# Copie a biblioteca extraída para a pasta C:/app/FRE12
ARG library_src="./FRE/FineReader Engine"
ADD $library_src /app/FRE12
ADD ./LicensingSettings_worker.xml /app/FRE12/Bin64/LicensingSettings.xml
# Substitua <service_address> em LicensingSettings.xml do worker
ARG service_address
COPY ./SetUpWorkerLicensing.ps1 /app/SetUpWorkerLicensing.ps1
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN /app/SetUpWorkerLicensing.ps1 -ServerAddress $service_address
# Copie e execute uma aplicação de teste
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 para preparar a pasta de registro de licenciamento do cliente e definir ServerAddress em LicensingSettings.xml
echo "Preparando a pasta de registro:"
echo "C:\ProgramData\ABBYY\SDK\12\Licenses"
New-Item -Path "C:\ProgramData\ABBYY\SDK\12\Licenses" -ItemType Directory
echo "LicensingSettings.xml encontrado:"
cd "C:/app/FRE12/Bin64"
type LicensingSettings.xml
echo "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.xml
echo "LicensingSettings.xml foi definido:"
type LicensingSettings.xml
# 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.

Veja também

Instalar o Serviço de Licenciamento no Windows Licenciamento Ativação