Gérer les exits avec Docker

Rule Engine peut être exécuté dans Docker sur Redhat, il est donc nécessaire de disposer d'un moyen de compiler les exits et de les importer dans un conteneur. Pour cela, vous pouvez utiliser l'image Docker ais/ais-ruleenginefile-exit/2.3.0:<tag name>, qui fournit l'environnement pour compiler les exits.

Compiler les exits dans le conteneur

Pour compiler les exits dans le conteneur :

1. Démarrez le conteneur avec la commande docker run :

docker run -it -e LOCAL_USER_ID=`id -u $USER`

--name [ExitContainer_Name] \

ais/ais-ruleenginefile-exit/2.3.0:<tag name>

Caution   Utilisez l'option --name pour définir un nom pour le conteneur qui sera utilisé pour importer le volume.

2. Importez les fichiers Cobol or C des exits vers ce conteneur à l'aide de la commande docker cp:

docker cp EXIEME.cbl [ExitContainer_Name]:/home/ai-user/\

RuleEngineFile/runtimes/EXEC/exit

Note   Les fichiers source doivent être copiés un par un avec docker cp, ou en utilisant l'option volume -v pour partager un répertoire contenant les fichiers source avec le conteneur. La commande suivante ne fonctionne pas : docker cp *.cbl [ExitContainer_Name]:/home/ai-user/RuleEngineFile/runtimes/EXEC/exit

3. Montez un répertoire local dans le conteneur :

  • Ajoutez l'option suivante à la commande docker run :
  • docker run -v [local_directory]:/home/ai-user/ \
  • RuleEngineFile/runtimes/EXEC/exit_src
  • exit_src est le nom du répertoire où se trouvent les fichiers source.
  • Utilisez une commande Unix cp pour copier les fichiers dans le répertoire $ RDJ_EXEC/exit à l'intérieur du conteneur.
Caution   Vous devez fournir un nom différent d'exit qui écraserait le répertoire exit existant.

4. Le répertoire de travail est $RDJ_EXEC/exit. Vous devez définir certaines variables d'environnement en lançant la commande suivante : exit$ ] . ./rdjenv

5. Compilez les exits en utilisant la commande make -f exitfic.mak.

6. Récupérez la bibliothèque en utilisant la commande docker cp. Par exemple, la commande suivante récupère le fichier libexieme.so dans le répertoire de travail en cours:

docker cp [ExitContainer_Name]:/home/ai-user/ \ RuleEngineFile/runtimes/EXEC/exit/libexieme.so .

Notes:

  • Les fichiers doivent être copiés un par un. La commande suivante ne fonctionne pas :
  • docker cp [ExitContainer_Name]:/home/ai-user/ \
  • RuleEngineFile/runtimes/EXEC/exit/*.so .
  • Le volume monté via l'option -v peut également être utilisé pour récupérer ces fichiers à l'aide d'une commande Unix cp standard.

Utiliser les exits dans un conteneur

Les fichiers de bibliothèque peuvent être intégrés dans un conteneur client en utilisant une commande COPY à l’intérieur d'un fichier Docker.COPY. Cependant, vous pouvez également utiliser les fichiers de bibliothèque dans un autre conteneur sans utiliser la commande docker cp.

Puisque l'image ais/ais-ruleenginefile-exit/2.3.0:<tag name> exporte le répertoire $RDJ_EXEC/exit en tant que volume, il peut être référencé dans le conteneur client en utilisant l'option --volumes-from avec le nom donné lors de l'exécution de l'image ais/ais-ruleenginefile-exit/2.3.0:<tag name> :

docker run -it -e LOCAL_USER_ID=`id -u $USER`

--volume-from [ExitContainer_Name] \

[Customer_ExitImage_Name]

Related Links