The Docker Compose deployment env.sh configuration file

After HCL Commerce 9.1.6.0, all deployment configuration and environment configuration for the Docker Compose deployment method is made within the env.sh configuration script. Beginning with HCL CommerceThis deployment method can also be used to aid in the deployment of an HCL Commerce Developer installation for development of the Elasticsearch-based search solution, or other HCL Commerce Version 9.1 solution.

The env.sh configuration file

The env.sh configuration script contains all deployment environment and topology configurations for the Docker Compose deployment method.

It is recommended to maintain different copies of the environment file for each deployment configuration. For example, you can have env.sh.auth, env.sh.live, env.sh.data for auth, live and data deployments respectively.

This makes follow-up deployments and tear downs significantly easier.

You must, however, rename the corresponding file for each deployment to env.sh before running the deploy script (step #3 of the deployment). This is also true of the teardown script that is used to bring down a running deployment.

Deploying HCL Commerce Search with Elasticsearch

Due to the high resource requirements of Elasticsearch-based Search, it has been separated into its own, separate deployment. This feature of the overall Docker deployment process allows for you to manage your compute resources, and to account for performance requirements or resource limitations by allowing for multiple machines or virtual machines to host different parts of the overall deployment.

Because of this separation, if you are deploying HCL Commerce with the Elasticsearch-based search solution, you must configure and deploy (step #2 and 3) twice. Once for the HCL Commerce applications, and a second time for the Elasticsearch-based Search. The order of these deployments is not consequential.

Examples of the topology configuration required for deploying Elasticsearch-based Search are detailed in the following topology section.

env.sh configuration overview

Deployment section

This section defines the deployment configuration parameters that define the applications that are included.

  • DEPLOY_TYPE controls whether the deployment is for the HCL Commerce application, the Elasticsearch-based Search platform, or the required containers for an HCL Commerce Developer installation.

    Accepted values are commerce, data, or HCL Commerce Version 9.1.12.0 or latertoolkit.

  • SEARCH_ENGINE defines the search engine that is used by HCL Commerce.

    Accepted values are solr, or elasticsearch.

    These values define the search infrastructure and search configuration for the deployment. This configuration and infrastructure also depends on the ENV_TYPE parameter.

License section

This section defines the license acceptance requirement, LICENSE_ACCEPTED, that is required for HCL Commerce to operate.

Common section

This section defines the HCL Commerce environment and server host information.

ENV_TYPE defines the HCL Commerce environment type for the deployment. The primary impact of this within the deployment context is the database that is used, as well as how the search infrastructure is configured to be queried.

Accepted values are auth for an authoring environment, and live for a live environment.

You can deploy an authoring environment to explore the full functionality of HCL Commerce, or both an authoring and live environment to explore and experiment with the non-production to production publishing capabilities that this advanced production deployment topology provides.

Database section

This section defines the database connection information that is used by the HCL Commerce deployment.

HCL Commerce Version 9.1.9.0 or laterLDAP section
This section describes LDAP configuration. To enable LDAP within your deployment, set the following parameters.
LDAP_ENABLE=true
LDAP_USE_VMM_PROPERTIES_FILE=true

You must then define your LDAP configuration using the vmm.properties configuration file, within your /volumes/ directory.

For more information, see Docker-based deployment LDAP configuration.

Application sections

These sections includes application specific configurations. Each Docker image and its tag can be defined within its corresponding application configuration section.

Integration sections

These sections include integration specific configurations.

For example, IBM MQ integration, introduced in HCL Commerce 9.1.10.0, includes the following configuration parameters:
MQ_ENABLE=true
      MQ_HOST=<Hostname of MQ server>
      MQ_PORT=<Port number of MQ server>
      MQ_QUEUE_MANAGER_NAME=<MQ Queue Manager used by commerce to connect to MQ server >
      MQ_ERROR_QUEUE_NAME=<IBM MQ Error Queue Name >
      MQ_INBOUND_QUEUE_NAME=<IBM MQ Queue Name >
      MQ_SERIAL_INBOUND_QUEUE_NAME=<IBM MQ Queue Name to process message in serial manner >
      MQ_PARALLEL_INBOUND_QUEUE_NAME=< IBM MQ Queue Name to process message in parallel manner>
      MQ_OUTBOUND_QUEUE_NAME=<IBM MQ Outbound Queue Name>

Additional configuration is required. For more information on IBM MQ integration, see Integrating IBM MQ with HCL Commerce.

HCL Commerce Version 9.1.10.0 or laterFeature sections

These sections include feature specific configurations.

For example, the Marketplace feature, introduced in HCL Commerce 9.1.10.0, is enabled via the following configuration:
MARKETPLACE_PREVIEW_ENABLED=true

Additional configuration is required. For more information on enabling Marketplace, see Enabling HCL Commerce Marketplace functionality within a Docker-based deployment.

env.sh topology examples

The following examples only highlight the parameters that specifically dictate your deployment applications and the resulting topology. Additional parameters, such as the licensing and database sections, are also required. Some configurations, such as specific application configurations, or those of your live database, are only required when your deployment topology requires them.

To deploy the HCL Commerce applications, the following env.sh configuration parameters are required. Note the DEPLOY_TYPE parameter is specified as commerce. This will deploy the commerce applications for the corresponding search configuration and environment type that is specified.
SEARCH_ENGINE=elasticsearch|solr
DEPLOY_TYPE=commerce
ENV_TYPE=live|auth
To deploy Elasticsearch-based Search, the following env.sh configuration is required. Note the DEPLOY_TYPE parameter is specified as data. This will deploy the data platform. The SEARCH_ENGINE parameter is still required to be set to elasticsearch by the deployment script.
SEARCH_ENGINE=elasticsearch
DEPLOY_TYPE=data