Création d'une image Docker personnalisée à partir d'un package déployable
Vous pouvez créer des images Docker personnalisées qui incluent votre code personnalisé ou vos configurations personnalisées, puis partager et déployer les nouvelles images.
Important:
A partir de HCL Commerce 9.1.14.0, les images de conteneurs d'applications sont conçues pour être exécutées par défaut en tant qu'utilisateur non root. Cette modification peut potentiellement faire échouer votre déploiement personnalisé. Vous devez donc passer ce changement et ses impacts potentiels en revue. Pour plus d'informations, voir HCL Commerce utilisateurs et privilèges liés aux conteneurs.
Note: Si vous travaillez sur un environnement d'exécution local à des fins de test, de développement ou de débogage, vous pouvez utiliser une méthode temporaire pour déployer rapidement des modifications dans votre environnement local. Pour plus d'informations, voir Mise à jour d'applications dans des conteneurs Docker en cours d'exécution.
Before you begin
- Dans un environnement de développement, créez des packages de personnalisation (
ts,store,search,xc) pour inclure votre code personnalisé. Pour plus d'informations, voir Génération de packages. - Téléchargez les packages de personnalisation dans votre environnement d'exécution.
About this task
- Créez un fichier Dockerfile pour chaque type d'image Docker.
- Créez un fichier docker-compose.yml qui fait référence aux fichiers Docker pour créer les nouvelles images.
+search ++Dockerfile ++CusDeploy +store ++Dockerfile ++CusDeploy +app ++Dockerfile ++CusDeploy +web ++Dockerfile +xc ++Dockerfile ++CusDeploy +db ++Dockerfile +docker-compose.yml
Procedure
-
Créez des répertoires distincts CusDeploy pour chaque image Docker que vous souhaitez personnaliser.
Par exemple,
- /opt/WebSphere/db/CusDeployNote: Cette opération n'est applicable que si vous exécutez votre base de données dans un conteneur Docker.
- /opt/WebSphere/search/CusDeploy
- /opt/WebSphere/store/CusDeploy
- /opt/WebSphere/xc/CusDeploy
- /opt/WebSphere/app/CusDeploy
- /opt/WebSphere/web/CusDeploy
- /opt/WebSphere/db/CusDeploy
-
Extrayez tous les packages de personnalisation créés à partir de l'utilitaire WCB dans le répertoire approprié.
Par exemple,
- Extrayez wcbd-deploy-server-ts-app.zip vers /opt/WebSphere/app/CusDeploy.
- Extrayez wcbd-deploy-server-crs-app.zip vers /opt/WebSphere/store/CusDeploy.
- Extrayez wcbd-deploy-server-search-app.zip vers /opt/WebSphere/search/CusDeploy.
- Extrayez wcbd-deploy-server-xc-app.zip vers /opt/WebSphere/xc/CusDeploy.
-
Effectuez les étapes suivantes pour créer ou mettre à jour un fichier Docker afin de générer une nouvelle image Docker search-app.
-
Effectuez les étapes suivantes pour créer ou mettre à jour un fichier Docker afin de générer une nouvelle image Docker
crs-app(magasin). -
Effectuez les étapes suivantes pour créer ou mettre à jour un fichier Dockerfile afin de générer une nouvelle image Transaction server Docker container
ts-app. -
Effectuez les étapes suivantes pour créer ou mettre à jour un fichier Docker afin de générer une nouvelle image Docker
xc-app(personnalisation). -
Effectuez les étapes suivantes pour créer ou mettre à jour un fichier Docker afin de générer une nouvelle image Docker
ts-web(Web). -
Effectuez les étapes suivantes pour créer ou mettre à jour un fichier Docker afin de générer une nouvelle image Docker
ts-db(base de données).Note: Cette opération n'est applicable que si vous exécutez votre base de données dans un conteneur Docker. -
Copiez le fichier docker-compose.yml existant dans le même répertoire que vos répertoires Docker.
Par exemple, /opt/WebSphere/docker-compose.yml.
-
Modifiez le fichier docker-compose.yml pour ajouter des paramètres de génération et de contexte.
Par exemple,
db: build: context: db image: <docker_registry>/commerce/ts-db:<tag> ... app: build: context: app image: <docker_registry>/commerce/ts-app:<tag> ... search: build: context: search image: <docker_registry>/commerce/search-app:<tag> ... store: build: context: store image: <docker_registry>/commerce/crs-app:<tag> ... web: build: context: web image: <docker_registry>/commerce/ts-web:<tag> ... -
Arrêtez et retirez les conteneurs en cours d'exécution.
Vous pouvez par exemple exécuter la commande suivante :
docker-compose -f docker-compose.yml rm -
Exécutez la commande suivante pour créer les nouvelles images.
docker-compose -f docker-compose.yml buildNote: Si vous souhaitez créer et déployer les conteneurs à l'aide d'une seule commande, vous pouvez utiliserdocker-compose -f docker-compose.yml up --build -d