Définition de la logique personnalisée avec des points d'extension
Dans cette leçon, vous définissez la logique de démarrage Docker personnalisée avec le script de shell du point d'extension.
Pourquoi et quand exécuter cette tâche
HCL Commerce V9 a deux points d'extension prédéfinis avant le démarrage du processus principal Docker. Ainsi, vous pouvez adopter une méthode plus souple pour personnaliser la logique de démarrage de l'image Docker.
Les deux points d'extension sont exécutés avant le démarrage des serveurs d'application. Vous pouvez définir ce que vous voulez faire dans preconfigue.sh et cusConfiguration.sh avant le démarrage du serveur dans l'image Docker. Toute la logique complexe peut être définie dans preConfigure.sh et cusCunfiguration.sh. Dans le Dockerfiler, vous devez uniquement définir la logique pour copier ces deux fichiers de shell de personnalisation dans l'image Docker. Ensuite, vous n'avez pas besoin de modifier l'image Docker lorsque vous souhaitez modifier la logique associée à ces deux shell de personnalisation. De cette façon, vous ne pouvez télécharger le package de personnalisation que dans preconfigure.sh et déployer le changement de configuration dans cusCunfiguration.sh.
Procédure
- Créez un dossier cus dans l'environnement local.
-
Créez un fichier preConfigure.sh dans le dossier local pour inclure les lignes de code suivantes :
#!/bin/bash wget -O '/opt/WebSphere/Liberty/usr/servers/default/crs-app-cus.zip ' "http://nexusServer:8081/nexus/service/local/artifact/maven/redirect?r=snapshots&g=crs-app-cus&a=crs-app-cus&v=@version@&p=zip" && \ unzip /opt/WebSphere/Liberty/usr/servers/default/crs-app-cus.zip -d /opt/WebSphere/Liberty/usr/servers/default/ -
Créez un fichier custConfiguration.sh dans le dossier local pour inclure les lignes de code suivantes :
#!/bin/bash sed -i '$a\-javaagent:./jmx_prometheus_javaagent-0.3.1.jar=8080:config.yaml' /opt/WebSphere/Liberty/usr/servers/default/jvm.options -
Créez un fichier Docker pour inclure les lignes de code suivantes :
FROM docker-repo/commerce/crs-app:tag COPY preConfigure.sh /SETUP/bin/ COPY custConfiguration.sh /SETUP/bin -
Générez l'image Docker personnalisée :
docker build -t docker-repo/commerce/crs-app:cus
Résultats
Cette nouvelle image Docker n'inclut pas le package de personnalisation et la logique de shell pour modifier le fichier de configuration. Toutefois, cette image sait ce qu'elle doit faire lorsque le conteneur est démarré à l'aide des scripts preConfiguation.sh et custConfiguration.sh. Seuls deux fichiers sont ajoutés à l'image Docker de base. Ainsi, la taille de l'image est minimale. Si vous souhaitez modifier la logique de personnalisation, modifiez preconfigure.sh et custConfiguration.sh files.
L'inconvénient de cette méthode, c'est que vous pouvez définir la logique personnalisée uniquement avec le script de shell. Lorsque la logique personnalisée est complexe, il peut être difficile de la définir dans le script de shell. Si c'est le cas, envisagez de définir la logique dans les commandes Run Engine.