En este tema se describe cómo ejecutar ABBYY FineReader Engine 12 en contenedores Docker en Linux. En este tema se tratan dos opciones de configuración:Documentation Index
Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
Use this file to discover all available pages before exploring further.
| Opción | Descripción |
|---|---|
| Contenedor único | El servicio de licencias y el worker de FRE se empaquetan juntos. Más simple; adecuado para pruebas, demostraciones y trabajos de OCR puntuales. |
| Dos contenedores | El servicio de licencias y el worker de FRE se ejecutan en contenedores separados. Mejor tolerancia a fallos; si uno se bloquea, puede reiniciarse sin interrumpir el otro. Varios workers pueden compartir un servicio de licencias. |
ubuntu:noble (24.04 LTS).
Tipos de licencias
Licencia en línea
Detalles de la licencia en línea
Detalles de la licencia en línea
- Patrón de nombre de archivo:
XXXXXXXXXXXXXXXXXXXX.ABBYY.ActivationToken - Se valida con
*.abbyy.comen tiempo de ejecución: cada ejecución del contenedor requiere acceso a Internet. - Requisitos en cualquier entorno donde esté instalado el servicio de licencias:
- Conexión activa a Internet
- Conexión HTTPS saliente permitida (puerto 443) a
*.abbyy.com - GoDaddy Trusted Root CA en el paquete del sistema
ca-certificates(ya incluido enubuntu:noble)
- Una sola instancia del servicio de licencias puede funcionar con solo una licencia en línea a la vez.
Licencia local
Detalles de la licencia local
Detalles de la licencia local
- Patrón del nombre de archivo:
XXXX-XXXX-XXXX-XXXX-XXXX-XXXX.ABBYY.LocalLicense - Se activa en tiempo de compilación durante la instalación de FRE y luego se integra en la imagen.
- No se requiere Internet en tiempo de ejecución — ideal para entornos aislados de la red.
Primeros pasos
- Docker y Docker Compose instalados (sintaxis v2 de
docker compose) - Instalador de ABBYY FineReader Engine 12 para Linux:
FRE*.sh - Archivo de licencia (
.ABBYY.ActivationTokeno.ABBYY.LocalLicense) y contraseña
Opción de configuración 1 — Contenedor único
Detalles del contenedor único
Detalles del contenedor único
Esta opción ejecuta el servicio de licencias y el worker de FRE en un único container. El punto de entrada inicia el servicio de licencias en segundo plano, espera brevemente a que esté listo, ejecuta el sample de CLI, imprime la salida y detiene correctamente todos los procesos al salir.Recomendado para pruebas locales, demostraciones y trabajos de CI donde solo se necesita un comando para iniciar y detener el servicio.
Esta es una compilación en dos etapas:
Archivos
Cree un directorio vacío y añada los siguientes archivos:Dockerfile— crea la imagen combinada (que se indica a continuación)entrypoint.sh— inicia el LS, ejecuta el ejemplo de la CLI y muestra el resultado (a continuación)docker-compose.yml— crea y ejecuta el contenedor (indicado a continuación).env— contiene el nombre del archivo de licencia y la contraseña (se indican a continuación)
Compilar y ejecutar
-
Copia el instalador
FRE*.shy el archivo de licencia en el directorio que creaste anteriormente. -
Cree un archivo
.envcon los valores de la licencia (consulte más abajo). -
Desde ese directorio, ejecute el siguiente comando para crear la imagen e iniciar el contenedor:
Demo.tif incluido mediante Reconocimiento óptico de caracteres (OCR) e imprimirá el texto reconocido en la consola..env
docker-compose.yml
Dockerfile
Esta es una compilación en dos etapas:- La etapa 1 usa
gcc:8para instalar FRE y compilar el ejemplo de la CLI. - La etapa 2 crea una imagen de runtime mínima basada en
ubuntu:nobley copia en ella los binarios del servicio de licencias, el runtime de FRE, el ejemplo compilado y el archivo de licencia.
entrypoint.sh
Opción de configuración 2 — Dos contenedores
Detalles de ambos contenedores
Detalles de ambos contenedores
Esta opción ejecuta el servicio de licencias y el worker de FRE en contenedores separados en una red compartida de Docker Compose. El worker se comunica con el servicio de licencias a través de TCP en
Algunos aspectos a tener en cuenta:
Esta es una compilación en dos etapas:
Esta es una compilación en dos etapas:
El punto de entrada del worker es más sencillo que el de la versión de contenedor único, ya que no gestiona el servicio de licencias. El worker simplemente ejecuta el sample e imprime la salida.
ls:3023.Recomendado para implementaciones en producción. Ejecutar los servicios en contenedores separados permite que Docker reinicie cualquiera de ellos de forma independiente si se produce un fallo. Además, permite que varios workers se conecten al mismo servicio de licencias.Archivos
Cree un directorio vacío y añada los siguientes archivos:Dockerfile_ls— crea el contenedor del servicio de licencias (que aparece a continuación)Dockerfile_worker— compila el contenedor del worker de FRE (indicado a continuación)entrypoint.sh— ejecuta el ejemplo de CLI en el worker (que se muestra a continuación)docker-compose.yml— conecta ambos contenedores (indicados a continuación).env— contiene el nombre del archivo de licencia y la contraseña (con el mismo formato que en la Configuración 1)
Compilar y ejecutar
-
Copia el instalador
FRE*.shy el archivo de licencia en el directorio. -
Crea un archivo
.envcon los valores de tu licencia. -
En ese directorio, ejecute:
Demo.tif incluido e imprime el resultado.docker-compose.yml
- El worker usa
depends_on: [ls], por lo que el contenedor del servicio de licencias se iniciará antes. - Ambos servicios usan
restart: on-failure, lo que les permite reiniciarse de forma independiente. - El argumento de compilación
service_addressdel worker esls:3023— el DNS integrado de Docker Compose hace quelsapunte al contenedor del servicio de licencias. shm_size: 1gse configura en el worker, no en el servicio de licencias, ya que FRE requiere memoria compartida.
Dockerfile_ls
Esta es una compilación en dos etapas:- En la etapa 1, se ejecuta el instalador de FRE con
--skip-local-license-activationpara extraer los binarios del servicio de licencias. - La etapa 2 crea una imagen mínima de ejecución
ubuntu:noble, expone el puerto3023y ejecutaLicensingService /standalonecomo PID 1. La marca/standalonemantiene el servicio de licencias en primer plano, que es el enfoque correcto en Docker (un proceso en primer plano registra los mensajes en stdout y finaliza correctamente cuando se detiene el contenedor).
Dockerfile_worker
Esta es una compilación en dos etapas:- La etapa 1 instala FRE con
--developer-instally--service-addressconfigurado para apuntar al contenedor del servicio de licencias, y luego compila el sample de CLI. - La etapa 2 crea una imagen de runtime mínima de
ubuntu:nobleque contiene solo los binarios de FRE, el ejemplo compilado y la imagen de demostración. Como el worker se comunica con el contenedorlspor la red, no se incluyen binarios del servicio de licencias.
entrypoint.sh
El punto de entrada del worker es más sencillo que el de la versión de contenedor único, ya que no gestiona el servicio de licencias. El worker simplemente ejecuta el sample e imprime la salida.Personalización del ejemplo de CLI
docker-compose.yml:
-if— archivo de entrada-f— perfil de formato de salida-of— archivo de salida
Edite esta línea para que apunte a un archivo de entrada o de salida, o a un perfil de formato diferente. Consulte la documentación de FRE Code Samples Library para ver la lista completa de argumentos de la CLI.
/app y haga que -if/-of apunten a archivos dentro de él.
Problemas comunes
shm_size: 1ges obligatorio. FRE depende de la memoria compartida POSIX y la asignación predeterminada de 64 MB de/dev/shmno es suficiente. Los archivos de Compose anteriores ya lo configuran en el servicio worker.- El instalador y el archivo de licencia deben estar en el contexto de compilación. Ambos Dockerfiles hacen
COPYdeFRE*.shy del archivo de licencia; si no están en el directorio desde el que se compila, la compilación falla de inmediato. No monte la licencia en tiempo de ejecución. Se activa durante la compilación. - Las licencias en línea necesitan conectividad de salida a la red desde el builder y el tiempo de ejecución. El builder la necesita para activar la licencia; el servicio de licencias del tiempo de ejecución la necesita para seguir validándola.
- No haga commit de archivos de licencia ni de instaladores. En el control de código fuente, agregue
.env,*.ABBYY.*yFRE*.sha su lista de ignorados, y no los incluya en ninguna imagen publicada a menos que comprenda las implicaciones y los riesgos. - Estos ejemplos usan
ubuntu:noble(24.04 LTS). La documentación anterior hacía referencia a Ubuntu bionic, que ya no tiene soporte. Los nombres de los paquetes difieren entre versiones de Ubuntu. Por ejemplo:libgcc-8-devahora eslibgcc-s1ylibstdc++-8-devahora eslibstdc++6. Si usa una imagen base diferente, verifique la lista de paquetes según corresponda.
