Logique de démarrage du conteneur Docker pour HCL Commerce Version 9.1
Lorsque vous déployez un conteneur à partir d'une image fournie par HCL, un script d'assistance Entrypoint.sh détermine les configurations à utiliser lors du démarrage du conteneur. Examinez les informations suivantes pour connaître ce que fait le script d'aide et comment vous pouvez personnaliser les configurations.
En comprenant le processus de démarrage de ces conteneurs Docker, vous pouvez apprendre à personnaliser les configurations pour répondre à vos besoins et à vous intégrer à votre infrastructure de conteneurs pour soutenir votre environnement de production. Ces informations sont également importantes si vous choisissez de créer un pipeline (IC/CD) continuous integration and continuous deployment pour rationaliser le processus de déploiement. Votre pipeline doit être en mesure de récupérer ces valeurs de configuration d'environnement et de transmettre les valeurs à chaque conteneur Docker démarré.
Documents d'aide au démarrage de conteneurs Docker local
Vous pouvez accéder à des documents d'aide rapides sur la machine où les images Docker sont chargées. Pour plus d'informations, voir Accès à l'aide de l'image Docker. Continuez la lecture pour obtenir des informations plus complètes de la logique de démarrage et d'apprendre à personnaliser vos conteneurs.
Configurations par défaut de HCL Commerce
Les images Docker fournies par HCL ont intégré des configurations par défaut de sorte que vous pouvez déployer rapidement un environnement d'exécution en effectuant uniquement des modifications minimales à l'image Docker. Si vous n'utilisez pas les noms d'hôtes de conteneur Docker par défaut ou les informations de base de données, assurez-vous de transmettre les paramètres nécessaires lors du démarrage du conteneur. Tout d'abord, voici les valeurs de configuration par défaut.- Chaque conteneur Docker HCL Commerce est configuré pour utiliser un nom d'hôte spécifique et un certificat par défaut pour se connecter à d'autres conteneurs. Il existe une logique de vérification stricte pour vérifier si le nom d'hôte utilisé dans une requête est le même que le SubjectAlternativeName dans le certificat du conteneur cible. Si vous déployez des conteneurs et spécifiez différents noms d'hôte, la connexion échoue à moins que vous reconfiguriez les certificats internes.Si vous n'utilisez pas les noms d'hôte par défaut de la table, vous devez mettre à jour le SubjectAlternativeName dans vos certificats. Pour plus d'informations, voir Gestion manuelle des certificats.
Image Docker Nom d'hôte par défaut commerce/crs-app storecommerce/search-app searchcommerce/xc-app xccommerce/ts-app appcommerce/ts-web webcommerce/ts-db Remarque : Cela suppose que vous exécutez un conteneur Docker Db2.dbcommerce/tooling-web tooling-webcommerce/store-web store-web
commerce/graphql-appgraphql
commerce/approval-appapprobation
commerce/nextjs-store-appnextjs-store commerce/search-nifi-app nificommerce/search-query-app querypour le service de requêtes du magasindata-querypour le service de requête d'entreprise
commerce/search-registry-app registrycommerce/search-ingest-app ingestdocker.elastic.co/elasticsearch/elasticsearch elasticsearchbitnami/zookeeper zookeeper
redisredis
postgrespostgresql - Configurations de base de données par défaut. Les images Docker sont préconfigurées pour se connecter à une base de données avec les informations d'identification suivantes.Si vous avez créé une instance de base de données avec les valeurs par défaut, vous n'avez pas à mettre à jour la configuration de la source de données dans les images Docker. Vous pouvez utiliser les valeurs par défaut dans un environnement de test local, mais pour des raisons de sécurité, vous ne souhaitez pas utiliser les valeurs par défaut dans un environnement de production. Pour plus d'informations sur la modification des connexions de base de données dans vos images, voir Génération d'images Docker personnalisées à utiliser avec une base de données Oracle.
Paramètres de base de données Valeur Type de base de données (dbType) db2 JNDI - Pour le serveur de transactions :
jdbc/WCDataSource - Pour le serveur de recherche :
jdbc/wcdb
Nom d'instance de la base de données (dbName) mall Utilisateur de base de données (dbUser) wcs Mot de passe utilisateur de la base de données (dbUserPass) ccl1 Hôte de la base de données (dbHost) db Port de la base de données (dbPort) 50000 - Pour le serveur de transactions :
Diagramme de flux de démarrage Docker
Le diagramme suivant illustre la logique et les commandes sous-jacentes qui s'exécutent lorsque vous démarrez un conteneur. HCL définit un script unique /SETUP/bin/entrypoint.sh comme l'image Docker ENTRYPOINT pour spécifier les commandes et configurations de démarrage. Pour plus d'informations sur ENTRYPOINT, voir Dockerfile ENTRYPOINT. Le diagramme suivant est une représentation visuelle de la logique de démarrage.
- entrypoint.sh vérifie d'abord l'acceptation de la licence. Tous les conteneurs nécessitent que LICENSE=accept soit transféré afin de démarrer.
- Si vous devez définir des configurations personnalisées avant le démarrage de la logique HCL, vous pouvez créer un script preConfigure.sh et l'enregistrer dans le répertoire /SETUP/bin/ de l'image Docker. Par exemple, si vous souhaitez récupérer des paires clé-valeur à partir d'un centre de gestion de configuration distant autre que Vault, vous devez personnaliser le script /SETUP/bin/preConfigure.sh pour vous connecter à votre centre de gestion de configuration.
- Déterminez comment passer les paramètres de démarrage Docker.
- Si vous n'utilisez pas Vault, vous pouvez spécifier CONFIGURE_MODE=EnvVariables. Cela déclenche le script /SETUP/bin/envVariablesConfigure.sh et extrait les paramètres des variables de l'environnement du conteneur.
- Les images HCL Commerce Docker sont configurées pour prendre en charge Vault en tant que centre de gestion de configuration. Si vous définissez vos paramètres dans Vault, vous pouvez spécifier CONFIGURE_MODE=Vault. Cela déclenche le script /SETUP/bin/vaultConfigure.sh qui peut extraire des paramètres de Vault tant que vous fournissez les VAULT_TOKEN et VAULT_URL.
- Le script a besoin que le nom d'hôte de chaque service Docker contienne les valeurs <TENANT>/<ENVIRONMENT>/<ENVTYPE>/<TARGET_KEY> et les données de configuration liées à l'environnement doivent être organisées comme <TENANT>/<ENVIRONMENT>/<ENVTYPE>/<TARGET_KEY>. Pour plus d'informations sur l'organisation de vos données dans Vault, voir Données d'environnement dans Vault.
- Cette méthode est conçue pour prendre en charge les environnements multi-titulaires sur les plates-formes d'orchestration Docker. Il est mieux utilisé dans un pipeline CI/CD où vous avez la possibilité de résoudre les paramètres TENANT, ENVIRONMENT, ENVTYPE et STOREWEB_HOST.
- Cette méthode suit un modèle fixe pour définir le nom d'hôte de chaque conteneur pendant le démarrage du conteneur. Par exemple, le nom de l'hôte du conteneur du serveur de transactions est défini comme <TENANT><ENVIRONMENT><ENVTYPE>tsapp.<DOMAIN-NAME>
- Si vous souhaitez déployer rapidement un environnement avec un minimum de modifications, vous pouvez omettre le paramètre CONFIGURE_MODE et spécifier des valeurs en tant que variables d'environnement de conteneur. Cette méthode ne prend en charge que certains paramètres, de sorte que la personnalisation est limitée dans ce mode.
En outre, si vous avez configuré Vault en tant qu'autorité de certificat avec un back-end PKI, alors vous pouvez également passer VAULT_CA=true. Cela déclenche le script /SETUP/bin/updateCerts.sh pour configurer la certification interne entre les conteneurs Docker. Pour plus d'informations, voir Gestion des certificats avec Vault.
- Ensuite, le point d'entrée déclenche le script /SETUP/bin/custConfiguration.sh, ce qui permet un autre point de personnalisation où vous pouvez personnaliser n'importe quel aspect de la logique de démarrage du conteneur Docker.
- Si vous traitez des certificats localement et n'utilisez pas Vault, vous pouvez définir vos informations de certificat dans un fichier JSON et les enregistrer dans /SETUP/certs/custom. Le script /SETUP/bin/updateLocalCerts.sh effectue une recherche dans le répertoire /SETUP/certs/custom et charge l'ensemble des fichiers JSON. Pour plus d'informations, voir Gestion manuelle des certificats.
- Si vous souhaitez personnaliser les scripts logiques de démarrage, vous pouvez créer un script /SETUP/bin/custConfiguration.sh pour inclure votre propre logique. Il s'agit du dernier script à s'exécuter pendant le démarrage du conteneur. Toutes les configurations que vous spécifiez dans custConfiguration.sh remplacent toutes les configurations des scripts précédents. Par exemple, si les scripts /SETUP/bin/vaultConfigure.sh, /SETUP/bin/envVariablesConfigure.sh ou /SETUP/bin/updateLocalCerts.sh ne répondent pas à vos exigences, il est recommandé d'utiliser ces scripts comme point de départ. Suivez le même squelette et mettez à jour ou ajoutez n'importe quelle logique personnalisée dans le script postConfiguration.sh.
Affichage des informations sur l'aide et la licence
Vous pouvez exécuter les commandes suivantes sans démarrer le conteneur.- Lister les informations d'utilisation de base.
docker run -it -e LICENSE=accept <Docker image> help - Afficher les conditions et les contrats de licence en anglais.
docker run -it -e LICENSE=accept <Docker image> LicenseView - Afficher les termes et accords de licence dans d'autres langues.
docker run -it -e LICENSE=accept -e lang=<cs|el|es|in|ja|lt|pt|sl|zh|de|en|fr|it|ko|pl|ru|tr|zh_TW> <Docker image> LicenseView