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.
/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 paralinux/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:
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.
Confirmación de la License
En modo servidor, llame a/healthz. Un contenedor con License devuelve ready: true:
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:
