Paramètres
La licence est un texte multiligne. Transmettez-la avec
$(cat acme.fineparserlicense) ou depuis un Secret Kubernetes. Les fichiers .env de Docker ne peuvent pas contenir de valeurs multilignes : ils ne conviennent donc pas pour cette variable.
La télémétrie dispose de ses propres variables d’environnement permettant d’inspecter le flux ou d’en envoyer une copie à votre propre collecteur. Voir Inspecter et copier le flux.
Une configuration par container
Les paramètres de reconnaissance ne peuvent pas être modifiés requête par requête. Chaque document reçu par un container est traité avec le mode et les langues définis à son démarrage. Si différents jeux de documents nécessitent des paramètres différents, exécutez un container par configuration et acheminez chaque requête vers le container correspondant. Un proxy inverse ou le code de votre propre application peut prendre cette décision à partir des informations dont vous disposez déjà sur le document, comme sa source ou son type de fichier.Stockage
Les résultats sont écrits dans le répertoire de sortie sous la forme{jobId}/{name}, aux côtés d’une petite base de données des tâches qui assure le suivi de chaque tâche. L’image déclare /app/output comme volume. Montez-y un volume nommé ou un répertoire de l’hôte : sans cela, Docker crée un volume anonyme et les résultats sont perdus à la suppression du conteneur.
/app/output doit donc lui être accessible en écriture.
Un seul conteneur par répertoire de sortie. La base de données des tâches est verrouillée tant qu’elle est ouverte : un second conteneur pointant vers le même volume refusera de démarrer. Si vous exécutez plusieurs conteneurs, attribuez à chacun son propre volume.
Les fichiers téléversés ne restent dans le répertoire temporaire que le temps d’attendre la reconnaissance, et sont supprimés dès que celle-ci est terminée. Rien dans le répertoire temporaire ne survit à une tâche : il n’a donc pas besoin de volume.
Exécution sur ARM
L’image FineParser n’est actuellement compilée que pourlinux/amd64. Sur un hôte ARM, tel qu’un Mac à puce Apple (série M), Docker doit l’exécuter en mode de compatibilité. Ajoutez l’option --platform linux/amd64 à docker run :
Arrêt du container
Attribuez au container un délai d’arrêt de 60 secondes. Lors d’un arrêt propre, FineParser laisse les requêtes en cours se terminer, vide la télémétrie, puis s’arrête. La valeur par défaut de Docker, 10 secondes, ne lui en laisse pas le temps. Utilisez--stop-timeout 60 avec docker run, ou terminationGracePeriodSeconds: 60 dans Kubernetes. Consultez Redémarrages et arrêt pour savoir ce qu’il advient des tâches alors en file d’attente ou en cours d’exécution.
Réseau
FineParser écoute sur le port 8080 à l’intérieur du container. Publiez ce port sur votre hôte avec-p HOST:CONTAINER afin de pouvoir lui envoyer des requêtes. -p 8080:8080 rend l’API accessible sur le port 8080 de l’hôte depuis n’importe quelle machine du réseau, tandis que -p 127.0.0.1:9000:8080 la limite à localhost sur le port 9000. Pour la syntaxe complète, consultez Published ports dans la documentation Docker.
Vérification de la License
En mode serveur, appelez/healthz. Un container disposant d’une License renvoie ready: true :
metering ready for instance … dans la sortie du container, avant le nombre de pages.
Sans License, aucun des deux modes ne fonctionne. Le Server se déclare en mauvaise santé et ne traite rien :
