Structure de référentiel de package personnalisée

L'HCL Commerce Build tool (outil WCB) peut créer des applications pour les quatre types de serveurs : le Transaction server, le Store server, le Search server et le Customization server. Un exemple montre comment vous pouvez créer vos propres extensions à l'aide de HCL Commerce Build tool.

Après avoir exécuté le Outil HCL Commerce Build pour générer des packages, un package ZIP est généré pour chaque composant serveur. Un package unique inclut uniquement des fichiers pour un seul composant serveur.
HCL Commerce Version 9.1.14.0 or laterImportant: 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.

Structure et logique du répertoire de déploiement de personnalisation

A un niveau élevé, HCL Commerce Version 9.1 utilise une logique de génération et de déploiement basée sur l'outil de génération et de déploiement HCL Commerce issu des versions antérieures. La logique de génération reste similaire aux processus de génération des versions antérieures. La logique de déploiement est toutefois maintenant séparée des processus de génération pour mieux fonctionner avec la technologie Docker.

Dans HCL Commerce, la technologie Docker est utilisée pour améliorer l'efficacité des opérations. Toutefois, en raison de la structure des conteneurs Docker inclus, les packages que vous devez créer pour déployer du code personnalisé et d'autres fichiers dans ces conteneurs doivent être organisés selon une structure de fichiers spécifique. Vos packages doivent également être construits et déployés en utilisant une logique spécifique.

Lorsque vous combinez votre code personnalisé et d'autres fichiers pour le déploiement dans les conteneurs Docker, vous devez utiliser le processus de génération HCL Commerce pour vous assurer que vos packages peuvent être déployés avec succès dans votre HCL Commerce. Pour plus d'informations sur le processus de génération réel de HCL Commerce, voir Configuration et création de packages.

Lorsque vous combinez des fichiers pour vos conteneurs de serveur, vous devez créer des packages déployables distincts pour chaque type de serveur. Vous pouvez créer un package avec le processus de génération HCL Commerce pour les types de serveur suivants.
  • Transaction server(ts-app)
  • Search server (search-app)
  • Store server (crs-app)
  • Customization server (xC-app)
Pour chaque type de serveur, le package dispose d'une structure de fichiers fixe utilisée avec une logique prédéfinée pour appliquer des personnalisations et d'autres modifications lorsque HCL Commerce génère des packages personnalisés à utiliser pour créer des images Docker afin de mettre à jour un environnement.

Structure de référentiel pour la création de packages de serveur

Après avoir exécuté l'utilitaire WCB pour créer un package de personnalisation, vous obtenez un fichier ZIP compressé avec le code combiné.

Examinez les informations dans les rubriques suivantes sur ce qui est inclus dans le package et ce qui arrive aux fichiers lors du déploiement sur vos images Docker.

Génération de packages de ressources de base de données

Pour les données, vous n'avez pas besoin de spécifier les ressources à créer. Vous n'avez qu'à placer vos fichiers de données dans des répertoires connexes (sql, xml, dataload, acug, acp, acpnls). Pour plus d'informations sur les structures de fichiers, voir Outil HCL Commerce Build structure de référentiel.

Structure générale de fichiers de package déployable

Dans un package déployable pour n'importe quel type de serveur, quatre dossiers standard peuvent être inclus au niveau de la racine du package :
  • Code

    Le code de personnalisation doit être inclus dans ce dossier. Incluez votre code dans les fichiers JAR ou WAR.

  • Config

    Les modifications de configuration doivent être incluses dans ce dossier.

  • (Facultatif) Certs

    Incluez des certificats personnalisés dans ce dossier.

  • (Facultatif) DeployScripts

    Incluez une logique de déploiement personnalisée dans ce dossier, telle que la logique définissant la façon dont les personnalisations doivent être déployées. Si vous incluez ce dossier, le fichier applyCustomization.sh recherchera un fichier applyDeployScripts.sh dans le dossier. Ce fichier est ensuite utilisé pour identifier et traiter toute logique de déploiement étendue que vous définissez, par exemple pour le traitement des fichiers et des dossiers que vous incluez en plus des quatre dossiers racine standard.

Lorsque vous créez un package, les scripts de génération HCL Commerce combinent votre code personnalisé dans les dossiers Code et Config. Ces deux dossiers sont créés par défaut lorsque vous exécutez un processus de génération pour créer un package déployable. La structure du sous-dossier pour les dossiers Code et Config est similaire d'un package à l'autre pour chaque type de serveur.

Lorsque vous exécutez un processus de génération, les dossiers facultatifs Certs et DeployScripts ne sont pas créés par défaut. Si vous devez déployer des certificats sur un serveur ou définir une logique de déploiement personnalisée, mettez à jour les scripts de génération HCL Commerce pour générer ces dossiers et combiner vos fichiers correspondants dans ces dossiers.

Lorsque le processus de génération HCL Commerce s'exécute pour créer un package personnalisé, le processus appelle le fichier applyCustomization.sh. Si le fichier est configuré pour générer les dossiers facultatifs, le processus de génération créera les dossiers et utilisera la logique par défaut définissant comment gérer les fichiers ou autres ressources inclus dans les dossiers. La structure de sous-dossier de ces dossiers doit correspondre à la structure suivante :
  • Pour le dossier Certs, incluez la structure de fichier suivante pour inclure vos ressources :
    Certs component-name CertificateFilename.json Certificate2Filename.json
    component-name est le nom d'un composant où le certificat doit être appliqué. Vous pouvez inclure plusieurs certificats pour un composant. Chaque certificat doit être défini en tant que fichier JSON. Pour plus d'informations sur la définition des informations de certificat dans un fichier JSON, voir Gestion manuelle des certificats
  • Pour le dossier DeployScripts, incluez la structure de fichier suivante pour inclure vos ressources :
    DeployScripts component-name applyDeployScripts.sh 
    component-name est le composant d'application ( ts-app, search-app, crs-app, ou xc-app). Pour chaque composant supplémentaire que vous incluez dans votre package déployable, incluez un répertoire pour ce composant et un fichier applyDeployScripts.sh pour définir la façon dont les ressources de composant doivent être déployées.

Génération d'une image Docker personnalisée avec un package déployable

Lorsque vous devez créer une image Docker personnalisée, vous devez créer l'image Docker par défaut appropriée avec votre package déployable personnalisé. Le processus de niveau élevé pour la création de cette image Docker personnalisée implique le processus suivant :
  1. Créer un dossier nommé CusDeploy
  2. Extraire votre package personnalisé dans le dossier CusDeploy.
  3. Créer un fichier nommé Dockerfile sur le même chemin d'accès que le dossier CusDeploy, par exemple dans le même dossier parent.
  4. Ecrivez votre Dockerfile de manière à ce qu'il inclue le contenu suivant :HCL Commerce Version 9.1.14.0 or later
    FROM Target_Component_Docker_Image COPY --chown=comuser:comuser CusDeploy /SETUP/Cus RUN /SETUP/bin/applyCustomization.sh optional_commands
    Pour les versions 9.1.0.0 à 9.1.13.0 de HCL Commerce :
    FROM Target_Component_Docker_Image COPY CusDeploy /SETUP/Cus RUN /SETUP/bin/applyCustomization.sh optional_commands
  5. Exécuter la commande de génération de Docker à partir du même dossier que celui dans lequel se situe votre fichier Docker :
    docker build -t new_Docker_image_name:tag .

Personnalisation du dossier Certs

Certs et DeployScripts ne sont pas des dossiers obligatoires dans le package. Vous pouvez inclure des certificats tiers à des fins d'intégration dans le dossier Certs. HCL Commerce Version 9 prend en charge le chargement de certificats tiers d'un site distant vers un conteneur Docker pendant le démarrage ainsi que l'empaquetage de certificats tiers dans le package de personnalisation. Lorsque vous créez l'image Docker personnalisée, ces fichiers de certificat sont copiés dans le répertoire /SETUP/certs/custom.

Personnalisation du dossier DeployScripts

Vous pouvez inclure la logique de déploiement personnalisée dans le dossier Deployscripts. Pour empaqueter ces deux dossiers dans le fichier ZIP final, personnalisez les scripts de l'outil de génération HCL Commerce. Vous pouvez combiner vos fichiers JAR personnalisés ou vos scripts dans le dossier DeployScripts et écrire la logique de déploiement dans applyDeployScripts.sh.
HCL Commerce Version 9.1.14.0 or laterNote: Assurez-vous que les commandes du script sont compatibles avec l'implémentation de l'utilisateur non root.

Exemple de structure de référentiel

Ces exemples sont fournis à des fins de référence uniquement, et pour servir de point de départ afin de vous aider à configurer votre propre environnement de génération.

Le fichier WCB_sample.zip fournit des exemples de fichiers de propriétés que vous pouvez utiliser comme référence pour mieux comprendre ce que vous devez configurer. L'emballage WCB_sample.zip contient également l'échantillon xC.