Skip to main content
FineParser se configura una sola vez, al iniciarse el contenedor, mediante variables de entorno y flags de línea de comandos. Cada ajuste admite ambas formas y, si se indican las dos, prevalece el flag. Los ajustes se mantienen durante toda la vida del process.

Configuración

La License es un texto de varias líneas. Pásela con $(cat acme.fineparserlicense) o desde un Secret de Kubernetes. Los archivos .env de Docker no admiten valores de varias líneas, por lo que no sirven para esta variable. La telemetría cuenta con sus propias variables de entorno para inspeccionar el flujo o enviar una copia a su propio recolector. Consulte Inspeccionar y copiar el flujo.

Una configuración por contenedor

Los ajustes de reconocimiento no se pueden cambiar en cada request. Todo documento que recibe un contenedor se procesa con el modo y los idiomas con los que este se inició. Si distintos document sets requieren ajustes diferentes, ejecute un contenedor por cada configuración y dirija cada request al contenedor que corresponda. Un proxy inverso o el código de su propia aplicación puede tomar esa decisión con base en lo que ya sepa del documento, como su source o su tipo de archivo.

Almacenamiento

Los resultados se escriben en el directorio de salida como {jobId}/{name}, junto a una pequeña base de datos de trabajos que realiza el seguimiento de cada trabajo. La imagen declara /app/output como volumen. Monte allí un volumen con nombre o un directorio del host, ya que, de lo contrario, Docker crea un volumen anónimo y los resultados se pierden al eliminar el contenedor.
El contenedor se ejecuta como usuario sin privilegios de root, por lo que debe tener permisos de escritura sobre el directorio del host montado en /app/output. Un contenedor por directorio de salida. La base de datos de trabajos permanece bloqueada mientras está abierta, de modo que un segundo contenedor que apunte al mismo volumen no podrá iniciarse. Si ejecuta varios contenedores, asigne a cada uno su propio volumen. Los archivos cargados se conservan en el directorio temporal solo mientras esperan el reconocimiento y se eliminan en cuanto este finaliza. Nada del directorio temporal sobrevive a un trabajo, por lo que no necesita un volumen.

Ejecución en ARM

Actualmente, la imagen de FineParser solo se compila para linux/amd64. En un host ARM, como un Mac con chip Apple silicon (serie M), Docker debe ejecutarla en modo de compatibilidad. Pase --platform linux/amd64 a docker run:
Sin el flag, Docker se niega a iniciar el contenedor o muestra una advertencia de incompatibilidad de plataforma, según la versión. La emulación es más lenta que la ejecución nativa. Es previsible que el reconocimiento tarde más por página que en un host x86-64, por lo que conviene tomarlo como un entorno de desarrollo y no como una referencia de rendimiento. Ya se está preparando una build nativa de la imagen para ARM que eliminará la necesidad de este flag.

Detención del contenedor

Asigne al contenedor un tiempo de espera de detención de 60 segundos. En una detención limpia, FineParser permite que finalicen las requests en curso, vacía la telemetría y se cierra. El valor predeterminado de Docker, de 10 segundos, no da tiempo suficiente. Use --stop-timeout 60 con docker run, o bien terminationGracePeriodSeconds: 60 en Kubernetes. Consulte Reinicios y apagado para saber qué ocurre con los trabajos que estén en cola o en ejecución en ese momento.

Redes

FineParser escucha en el puerto 8080 dentro del contenedor. Publique ese puerto en su host con -p HOST:CONTAINER para poder enviarle requests. Con -p 8080:8080, la API queda accesible en el puerto 8080 del host desde cualquier máquina de la red, y con -p 127.0.0.1:9000:8080 se limita a localhost en el puerto 9000. Consulte Published ports en la documentación de Docker para conocer la sintaxis completa.
El contenedor debe poder comunicarse con el License server de ABBYY. Sin esa conexión de salida, FineParser no procesa documentos. Permita los rangos de direcciones indicados en Requisitos de red en su firewall o proxy de salida. Para entornos sin conectividad de salida, consulte FineParser Enterprise.

Confirmación de la License

En modo servidor, llame a /healthz. Un contenedor con License devuelve ready: true:
En modo CLI, busque la línea metering ready for instance … en la salida del contenedor antes del número de páginas. Sin una License, ninguno de los dos modos funciona. El Server informa un estado no saludable y no procesa nada: