Cette rubrique explique comment exécuter ABBYY FineReader Engine 12 dans des conteneurs Docker sous Linux. Cette rubrique présente deux options de configuration :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.
| Option | Description |
|---|---|
| Conteneur unique | Le service de licence et le worker FRE sont regroupés dans un même conteneur. Plus simple ; convient bien aux tests, aux démonstrations et aux tâches d’OCR ponctuelles. |
| Deux conteneurs | Le service de licence et le worker FRE sont répartis dans des conteneurs distincts. Meilleure tolérance aux pannes ; si l’un s’arrête, il peut redémarrer sans interrompre l’autre. Plusieurs workers peuvent partager un même service de licence. |
ubuntu:noble (24.04 LTS).
Types de licence
Licence en ligne
Détails de la licence en ligne
Détails de la licence en ligne
- Modèle de nom de fichier :
XXXXXXXXXXXXXXXXXXXX.ABBYY.ActivationToken - Validation auprès de
*.abbyy.comà l’exécution — chaque démarrage du conteneur nécessite un accès à Internet. - Exigences partout où le service de licence est installé :
- Connexion Internet active
- Connexions HTTPS sortantes autorisées (port 443) vers
*.abbyy.com - GoDaddy Trusted Root CA dans le package système
ca-certificates(déjà présent dansubuntu:noble)
- Une instance unique du service de licence ne peut fonctionner qu’avec une seule licence en ligne à la fois.
Licence locale
Détails de la licence locale
Détails de la licence locale
- Schéma de nom de fichier :
XXXX-XXXX-XXXX-XXXX-XXXX-XXXX.ABBYY.LocalLicense - Activée lors de la génération de l’image pendant l’installation de FRE, puis intégrée à l’image.
- Pas besoin d’accès à Internet à l’exécution — idéal pour les environnements isolés du réseau.
Prise en main
- Docker et Docker Compose installés (syntaxe
docker composev2) - Installateur Linux d’ABBYY FineReader Engine 12 :
FRE*.sh - Fichier de licence (
.ABBYY.ActivationTokenou.ABBYY.LocalLicense) et mot de passe
Option de configuration 1 — Conteneur unique
Détails de l’option à conteneur unique
Détails de l’option à conteneur unique
Cette option exécute le service de licence et le worker FRE dans un seul conteneur. Le point d’entrée démarre le service de licence en arrière-plan, attend brièvement qu’il soit opérationnel, exécute l’exemple CLI, affiche la sortie et arrête proprement tous les processus à la fermeture.Recommandé pour les tests locaux, les démonstrations et les jobs CI où une seule commande suffit pour démarrer et arrêter.
Il s’agit d’un build en deux étapes :
Fichiers
Créez un répertoire vide et ajoutez les fichiers suivants :Dockerfile— génère l’image combinée (indiquée ci-dessous)entrypoint.sh— démarre le LS, exécute l’exemple CLI, affiche le résultat (ci-dessous)docker-compose.yml— crée et exécute le conteneur (indiqué ci-dessous).env— contient le nom du fichier de licence et votre mot de passe (indiqués ci-dessous)
Compiler et exécuter
-
Copiez votre installateur
FRE*.shet votre fichier de licence dans le répertoire que vous avez créé ci-dessus. -
Créez un fichier
.envavec les informations de votre licence (voir ci-dessous). -
Depuis ce répertoire, exécutez la commande suivante pour générer l’image et démarrer le conteneur :
Demo.tif fourni à l’aide de la reconnaissance optique de caractères (OCR) et affiche le texte reconnu dans la console..env
docker-compose.yml
Dockerfile
Il s’agit d’un build en deux étapes :- L’étape 1 utilise
gcc:8pour installer FRE et compiler l’exemple CLI. - L’étape 2 crée une image d’exécution minimale
ubuntu:nobleet y copie les binaires du service de licence, le runtime FRE, l’exemple compilé et le fichier de licence.
entrypoint.sh
Option de configuration 2 — Deux conteneurs
Détails sur les deux conteneurs
Détails sur les deux conteneurs
Cette option exécute le service de licence et le worker FRE dans des conteneurs distincts sur un réseau Docker Compose partagé. Le worker communique avec le service de licence via TCP sur
Quelques points à noter :
Il s’agit d’un build en deux étapes :
Il s’agit d’un build en deux étapes :
Le point d’entrée du worker est plus simple que la version à conteneur unique, car il ne gère pas le service de licence. Le worker exécute simplement le sample et affiche le résultat.
ls:3023.Recommandé pour les déploiements en production. L’exécution des services dans des conteneurs distincts permet à Docker de redémarrer l’un ou l’autre indépendamment en cas de défaillance. Cela permet également à plusieurs workers de se connecter au même service de licence.Fichiers
Créez un répertoire vide et ajoutez les fichiers suivants :Dockerfile_ls— crée le conteneur du service de licence (présenté ci-dessous)Dockerfile_worker— construit le conteneur worker FRE (répertorié ci-dessous)entrypoint.sh— exécute l’exemple CLI dans le worker (répertorié ci-dessous)docker-compose.yml— connecte les deux conteneurs (indiqués ci-dessous).env— contient le nom du fichier de licence et le mot de passe (même format que la configuration 1)
Compiler et exécuter
-
Copiez le fichier d’installation
FRE*.shet le fichier de licence dans le répertoire. -
Créez un fichier
.envavec les valeurs de votre licence. -
Dans ce répertoire, exécutez :
Demo.tif inclus et affiche le résultat.docker-compose.yml
- Le worker utilise
depends_on: [ls]afin que le conteneur du service de licence démarre en premier. - Les deux services utilisent
restart: on-failure, ce qui leur permet de redémarrer chacun de manière indépendante. - L’argument de build
service_addressdu worker estls:3023— le DNS intégré de Docker Compose résoutlsen l’adresse du conteneur du service de licence. shm_size: 1gest configuré sur le worker, et non sur le service de licence, car FRE nécessite une mémoire partagée.
Dockerfile_ls
Il s’agit d’un build en deux étapes :- L’étape 1 lance le programme d’installation FRE avec
--skip-local-license-activationpour extraire les fichiers binaires du service de licence. - L’étape 2 crée une image d’exécution
ubuntu:nobleminimale, expose le port3023et exécuteLicensingService /standaloneen tant que PID 1. L’indicateur/standalonemaintient le service de licence au premier plan, ce qui est la bonne approche avec Docker (un processus au premier plan écrit ses journaux sur stdout et se termine proprement lorsque le conteneur est arrêté).
Dockerfile_worker
Il s’agit d’un build en deux étapes :- L’étape 1 installe FRE avec
--developer-installet--service-addresspointant vers le conteneur du service de licence, puis compile l’exemple d’interface de ligne de commande. - L’étape 2 crée une image d’exécution
ubuntu:nobleminimale contenant uniquement les binaires FRE, l’exemple compilé et l’image de démonstration. Comme le worker communique avec le conteneurlsvia le réseau, aucun binaire du service de licence n’est inclus.
entrypoint.sh
Le point d’entrée du worker est plus simple que la version à conteneur unique, car il ne gère pas le service de licence. Le worker exécute simplement le sample et affiche le résultat.Personnaliser l’exemple CLI
docker-compose.yml :
-if— fichier d’entrée-f— profil de format de sortie-of— fichier de sortie
Modifiez cette ligne pour qu’elle pointe vers un autre fichier d’entrée, fichier de sortie ou profil de format. Consultez la documentation de la FRE Code Samples Library pour obtenir la liste complète des arguments de l’interface CLI.
/app à l’aide d’un bind mount et faites pointer -if/-of vers des fichiers qu’il contient.
Problèmes courants
shm_size: 1gest obligatoire. FRE s’appuie sur la mémoire partagée POSIX, et l’allocation/dev/shmpar défaut de 64 Mo est insuffisante. Les fichiers compose ci-dessus définissent déjà ce paramètre pour le service worker.- Le programme d’installation et le fichier de licence doivent se trouver dans le contexte de build. Les deux Dockerfiles copient
FRE*.shet le fichier de licence : s’ils ne se trouvent pas dans le répertoire depuis lequel vous lancez le build, celui-ci échoue immédiatement. Ne montez pas la licence à l’exécution. Elle est activée pendant le build. - Les licences en ligne nécessitent un accès réseau sortant depuis le builder et le runtime. Le builder en a besoin pour l’activation ; le service de licence du runtime en a besoin pour poursuivre la validation.
- Ne versionnez pas les fichiers de licence ni les programmes d’installation. Dans votre système de contrôle de version, ajoutez
.env,*.ABBYY.*etFRE*.shà votre liste d’exclusion, et ne les incluez dans aucune image publiée, sauf si vous comprenez les implications et les risques. - Ces exemples utilisent
ubuntu:noble(24.04 LTS). La documentation précédente faisait référence à Ubuntu bionic, qui est en fin de vie. Les noms des paquets diffèrent selon les versions d’Ubuntu. Par exemple :libgcc-8-devest maintenantlibgcc-s1etlibstdc++-8-devest maintenantlibstdc++6. Si vous utilisez une autre image de base, vérifiez la liste des paquets en conséquence.
