Lógica de inicio del contenedor Docker para la Versión 9.0.0.2 HCL Commerce Version 9.1

Cuando se despliega un contenedor desde una imagen proporcionada por HCL, un script de ayuda Entrypoint.shdetermina las configuraciones que se utilizarán al iniciar el contenedor. Revise la siguiente información para obtener más detalles sobre qué hace el script de ayuda y cómo puede personalizar las configuraciones.

Al comprender el proceso de inicio de estos contenedores de Docker, puede aprender a personalizar las configuraciones para adaptarlas a sus necesidades e integrarlas con la infraestructura de contenedor para dar soporte al entorno de producción. Esta información también es importante si elige crear una ejecución secuencial (CI/CD) continuous integration and continuous deployment para racionalizar el proceso de despliegue. La ejecución secuencial necesita poder recuperar estos valores de configuración de entorno y pasar los valores a cada contenedor de Docker que se inicia.

Documentos de ayuda de inicio del contenedor de Docker local

Puede acceder a los documentos de ayuda rápida en la máquina en la que se cargan las imágenes de Docker. Para obtener más información, consulte Acceder a la ayuda de imagen de Docker. Continúe leyendo para obtener un conocimiento más exhaustivo de la lógica de inicio y para aprender a personalizar los contenedores.

Configuraciones predeterminadas de HCL Commerce

Las imágenes de Docker proporcionadas por HCL tienen configuraciones predeterminadas incorporadas para que pueda desplegar rápidamente un entorno de ejecución realizando solo cambios mínimos en la imagen de Docker. Si no utiliza los nombres de host o la información de la base de datos del contenedor de Docker predeterminado, asegúrese de que pasa los parámetros necesarios durante el inicio del contenedor. En primer lugar, estos son los valores de configuración predeterminados.
  • Cada contenedor de Docker de HCL Commerce está configurado para utilizar un nombre de host y un certificado predeterminado específicos para conectarse a otros contenedores. Se sigue una lógica de verificación estricta para comprobar si el nombre de host que se utiliza en una solicitud es el mismo que el SubjectAlternativeName en el certificado del contenedor de destino. Si despliega contenedores y especifica nombres de host diferentes, la conexión falla a menos que vuelva a configurar los certificados internos.
    Imagen de Docker Nombre de host predeterminado
    commerce/crs-app store
    commerce/search-app search
    commerce/xc-app xc
    commerce/ts-app app
    commerce/ts-web web
    commerce/ts-db
    Nota: Esto presupone que está ejecutando un contenedor de Docker de Db2.
    db
    commerce/tooling-web tooling-web
    commerce/store-web store-web
    HCL Commerce Version 9.1.9.0 or latercommerce/graphql-app graphql
    HCL Commerce Version 9.1.12.0 or latercommerce/approval-app aprobación
    HCL Commerce Version 9.1.13.0 or latercommerce/nextjs-store-app nextjs-store
    commerce/search-nifi-app nifi
    commerce/search-query-app
    • query para el servicio de consulta de tienda
    • data-query para el servicio de consulta de negocio
    commerce/search-registry-app registry
    commerce/search-Ingest-app ingest
    docker.elastic.co/elasticsearch/elasticsearch elasticsearch
    bitnami/zookeeper zookeeper
    HCL Commerce Version 9.1.3.0 or laterredis redis
    HCL Commerce Version 9.1.12.0 or laterpostgres postgresql
    Si no utiliza los nombres de host predeterminados de la tabla, deberá actualizar el SubjectAlternativeName en los certificados. Para obtener más información, consulte Gestionar certificados.
  • Configuraciones predeterminadas de la base de datos. Las imágenes de Docker están preconfiguradas para conectarse a una base de datos con las siguientes credenciales.
    Parámetros de la base de datos Valor
    Tipo de base de datos (dbType) db2
    JNDI
    • Para el servidor de transacciones:
      jdbc/WCDataSource
    • Para el servidor de búsqueda:
      jdbc/wcdb
    Nombre de la instancia de la base de datos (dbName) mall
    Usuario de la base de datos (dbUser) wcs
    Contraseña del usuario de la base de datos (dbUserPass) wcs1
    Host de la base de datos (dbHost) db
    Puerto de la base de datos (dbPort) 50000
    Si ha creado una instancia de base de datos con los valores predeterminados, no tiene que actualizar la configuración de datasource en las imágenes de Docker. Es posible que desee utilizar los valores predeterminados en un entorno de prueba local, pero por motivos de seguridad, no desee utilizar los valores predeterminados en un entorno de producción. Para obtener información sobre cómo cambiar las conexiones de la base de datos en las imágenes, consulte Creación de imágenes de Docker personalizadas para utilizarlas con una Oracle base de datos.

Diagrama de flujo de inicio de Docker

El siguiente diagrama ilustra la lógica subyacente y los mandatos que se ejecutan cuando se inicia un contenedor. HCL define un script exclusivo /SETUP/bin/entrypoint.sh como el punto de inicio de la imagen de Docker para especificar los mandatos y configuraciones de arranque. Para obtener más in para mación acerca de ENTRYPOINT, consulte Dockerfile ENTRYPOINT. El diagrama siguiente es una representación visual de la lógica de inicio.
Imagen de EntryPoint.sh
  1. entrypoint.shprimero comprueba la aceptación de la licencia. Todos los contenedores requieren que la LICENSE=accept se pase para poder iniciarse.
  2. Si necesita establecer configuraciones personalizadas antes de que se inicie la lógica de HCL, puede crear un script preConfigure.sh y guardarlo en el directorio /SETUP/bin/ de la imagen de Docker. Por ejemplo, si desea recuperar pares clave-valor de un centro de gestión de configuración remota distinto de Vault, debe personalizar el script /SETUP/bin/preConfigure.sh para conectarse al centro de gestión de configuración.
  3. Determine cómo pasar los parámetros de inicio de Docker.
    1. Si no utiliza Vault, puede especificar CONFIGURE_MODE=EnvVariables. Esto desencadena el script /SETUP/bin/envVariablesConfigure.sh y extrae parámetros de las variables de entorno de contenedor.
    2. Las imágenes de Docker de HCL Commerce se configuran para dar soporte a Vault como centro de gestión de configuración. Si configura los parámetros en Vault, puede especificar CONFIGURE_MODE=Vault. Esto desencadena el script /SETUP/bin/vaultConfigure.sh que puede extraer parámetros de Vault siempre que proporcione el VAULT_TOKEN y VAULT_URL.
      • El script necesita que cada nombre de host de servicio de Docker contenga los valores <TENANT>/<ENVIRONMENT>/<ENVTYPE>/<TARGET_KEY> y los datos de configuración relacionados con el entorno deben organizarse como <TENANT>/<ENVIRONMENT>/<ENVTYPE>/<TARGET_KEY>. Para obtener más información sobre cómo organizar los datos en Vault, consulte Datos de entorno en Vault.
      • Este método está diseñado para dar soporte a entornos de varios arrendatarios en plataformas de orquestación de Docker. Es mejor utilizarlo en una ejecución secuencial de CI/CD donde tenga la posibilidad de resolver los parámetros TENANT, ENVIRONMENT, ENVTYPE y STOREWEB_HOST.
      • Este método sigue un patrón fijo para establecer el nombre de host de cada contenedor durante su inicio. Por ejemplo, el nombre de host del contenedor del servidor de transacciones se establece como <TENANT><ENVIRONMENT><ENVTYPE>tsapp.<DOMAIN-NAME>
    3. Si desea desplegar rápidamente un entorno con cambios mínimos, puede omitir el parámetro CONFIGURE_MODE y especificar valores como variables de entorno de contenedor. Este método solo da soporte a algunos parámetros, de modo que la personalización está limitada en este modo.

    Además, si ha configurado Vault como una autoridad de certificación con un fondo de PKI, también puede pasar VAULT_CA=true. Esto desencadena el script /SETUP/bin/updateCerts.sh para configurar la certificación interna entre contenedores de Docker. Para obtener más información, consulte Gestionar certificados con Vault.

  4. A continuación, EntryPoint desencadena el script /SETUP/bin/custConfiguration.sh, lo que permite otro punto de personalización en el que puede personalizar cualquier aspecto de la lógica de inicio del contenedor del Docker.
    • Si maneja certificados localmente y no utiliza Vault, puede definir la información del certificado en un archivo JSON y guardarlo en /SETUP/certs/custom. El script /SETUP/bin/updateLocalCerts.sh busca en el directorio /SETUP/certs/custom y carga todos los archivos JSON. Para obtener más información, consulte Gestionar certificados.
    • Si desea personalizar los scripts de lógica de inicio, puede crear un script /SETUP/bin/custConfiguration.sh para incluir su propia lógica. Este es el último script que se debe ejecutar durante el inicio del contenedor. Las configuraciones que especifique en custConfiguration.sh sustituyen las configuraciones de los scripts anteriores. Por ejemplo, si los scripts /SETUP/bin/vaultConfigure.sh, /SETUP/bin/envVariablesConfigure.sh o /SETUP/bin/updateLocalCerts.sh no cumplen su requisitos, se recomienda utilizar dichos scripts como punto de partida. Siga el mismo esqueleto y actualice o añada cualquier lógica personalizada al script postConfiguration.sh.
Consejo: Para añadir cualquiera de los archivos personalizados a la imagen de Docker (preConfigure.sh, custConfiguration.sh, *.json), cree un Dockerfile y defina una instrucción COPIAR para copiar el archivo en la nueva ubicación de destino de la imagen de Docker. A continuación, utilice Dockerfile para crear una imagen de Docker personalizada.

Visualizar la información de ayuda y licencia

Puede ejecutar los siguientes mandatos sin iniciar el contenedor.
  • Mostrar la información de uso básica.
    docker run -it -e LICENSE=accept <Docker image> help 
  • Mostrar términos y acuerdos de licencia en inglés.
    docker run -it -e LICENSE=accept <Docker image> LicenseView
  • Mostrar términos y acuerdos de licencia en otros idiomas.
    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
También puede leer el script /SETUP/bin/entrypoint.sh para comprender la lógica de inicio.

Iniciar contenedores con varias opciones de configuración

Cada contenedor de Docker de HCL Commerce tiene sus propios parámetros obligatorios que debe proporcionar para que el contenedor se inicie. También hay parámetros opcionales que puede especificar para personalizar más el contenedor. Para obtener más información, consulte los temas siguientes.