Saltar al contenido principal
Este tema también está disponible para Linux.
Esta sección proporciona instrucciones para ejecutar ABBYY FineReader Engine 12 dentro de un contenedor Docker. En este escenario se usan dos contenedores:
  1. un contenedor con ABBYY FineReader Engine
  2. un contenedor con el servicio de licencias
La implementación de este escenario aumenta la tolerancia a fallos y garantiza el funcionamiento continuo de todos los contenedores. Si uno de los contenedores falla, puede reiniciarlo sin interrumpir el otro. Para este escenario se usa una Licencia Online, que se conecta al servidor de licencias de *.abbyy.com.
ABBYY servicio de licencias solo puede funcionar con una Licencia Online al mismo tiempo.
Necesita:
  • su Customer Project ID
  • un archivo de token de Licencia Online
  • la contraseña del archivo de token de licencia
Debe cumplir las siguientes condiciones para usar una Licencia Online allí donde esté instalado ABBYY servicio de licencias:
  • Conexión activa a Internet
  • Conexiones permitidas a *.abbyy.com en el puerto 443 (HTTPS)
  • GoDaddy Trusted Root Certification Authority
El certificado raíz de GoDaddy para la entidad de certificación debe estar instalado en la versión de equipo local del almacén de certificados Trusted Root Certification Authorities. Consulte la información detallada sobre el certificado en el sitio web de GoDaddy.
Para ejecutar ABBYY FineReader Engine 12 en un contenedor Docker:
  1. Descargue e instale Docker for Windows en su equipo.
  2. Habilite las características de Windows Hyper-V y Containers.
  3. Seleccione la opción “Use Windows containers instead of Linux containers” durante la instalación del contenedor.
  4. Cree un directorio vacío y coloque en él:
  • docker-compose.yml — una configuración de Docker Compose (consulte su contenido a continuación)
  • TestAppFolder — un directorio con
    • un archivo de token de Licencia Online
    • una aplicación de prueba compilada para usar este archivo de token, así como su contraseña y su Customer Project ID
  • Dockerfile_ls — un Dockerfile para el contenedor con el servicio de licencias (consulte su contenido a continuación)
Dockerfile_ls está pensado para compilar un contenedor que funcionará solo con un contenedor compilado a partir de Dockerfile_worker . No configure varias réplicas del contenedor con ABBYY FineReader Engine para que funcionen con un único servicio de licencias.
  • LicensingSettings_ls.xml - un archivo con parámetros de licencia para el servicio de licencias (consulte su contenido a continuación)
  • DeployLS.ps1 — un script para iniciar el servicio de licencias (consulte su contenido a continuación)
Nota: Este script ejecuta el servicio de licencias con la clave /standalone. Con esta clave, el servicio de licencias funciona como un proceso en primer plano, que es la práctica recomendada para trabajar en contenedores Docker.
  • Dockerfile_worker — un Dockerfile para un contenedor con ABBYY FineReader Engine y una aplicación de prueba (Consulte su contenido a continuación)
  • LicensingSettings_worker.xml - un archivo con los parámetros de licencia de la biblioteca ABBYY FineReader Engine (Consulte su contenido a continuación)
  • SetUpWorkerLicensing.ps1 - un script para reemplazar el nombre del servidor en LicensingSettings_worker.xml por el nombre especificado en docker-compose.yml (Consulte su contenido a continuación)
  • RunTestApp.ps1 — un script de línea de comandos para ejecutar la aplicación de prueba (Consulte su contenido a continuación)
  1. Descomprima el paquete de distribución de ABBYY FineReader Engine en el directorio que creó anteriormente con el comando:
installRnt64.exe /extract InstallDir="<your_directory>/FRE"
  1. Para compilar y ejecutar los contenedores, utilice el siguiente comando:
docker-compose up
Los resultados de la ejecución de la aplicación de prueba se mostrarán en la consola.
Si usa Windows Server Core como imagen base del contenedor, configure las fuentes después de desplegar ABBYY FineReader Engine, como se describe en Trabajar con fuentes
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 el servicio de licencias
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
# Instalación del servicio de licencias
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
# Copie la biblioteca extraída en la carpeta C:/app/FRE12
ARG library_src="./FRE/FineReader Engine"
ADD $library_src /app/FRE12
ADD ./LicensingSettings_worker.xml /app/FRE12/Bin64/LicensingSettings.xml
# Reemplace <service_address> en el archivo LicensingSettings.xml del 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 y ejecute una aplicación de prueba
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 la carpeta de logging de licencias del cliente y establecer ServerAddress en LicensingSettings.xml
echo "Preparando la carpeta de logging:"
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 "Estableciendo la dirección del servicio en: "
echo $service_address
((Get-Content -path LicensingSettings.xml -Raw) -replace '<server_address>',$Env:service_address) `
| Set-Content -Path LicensingSettings.xml
echo "LicensingSettings.xml configurado:"
type LicensingSettings.xml
# Script para ejecutar una aplicación de prueba desde la carpeta TestAppFolder
# Inicie la aplicación de prueba con argumentos (CommandLineInterface.exe se utiliza como aplicación de prueba)
cd C:\app\TestAppFolder
.\CommandLineInterface.exe  -pi -if Demo.tif -f PDF -of Demo.pdf
# Para usar el ejemplo de código de CommandLineInterface en un contenedor Docker, debe:
# 1) especificar los datos del contenedor Docker en SamplesConfig.h:
# - GetLicensePath, GetCustomerProjectId, GetLicensePassword
# - L"C:\\app\\FRE12\\Bin64\\FREngine.dll" como GetFreDllPath
# 2) recompilar el proyecto para la configuración x64.
# 3) copiar CommandLineInterface.exe, el archivo de licencia *.ABBYY.ActivationToken
#  y la imagen de demostración (Demo.tif) en la carpeta \TestAppFolder.

Consulte también

Instalación del servicio de licencias en Windows Licencias Activación