Deploying HCL Commerce Version or greater with Docker Compose (for non-production usage)

You can deploy HCL Commerce Version 9.0 simply using Docker Compose. Generally, you deploy an authoring environment and a live environment to work together. In this standard HCL Commerce configuration, you update and modify your store in the authoring environment, and then propagate the changes to the live environment.

Important: This environment should not be used for a live production site as it misses some required production grade components and considerations, such as security hardening, deployment orchestration and load balancing for high availability support, ingress routing, and performance tuning capabilities. To operate HCL Commerce Version 9.1 in a live production environment, you must deploy it in a Kubernetes cluster and commit further time and resources to performance and security considerations.

With load balancing and ingress routing specifically, you can configure which services you want to expose externally, and restrict the remaining services within the cluster network. This configuration limits their access from and exposure to the wider Internet.

The Docker-based deployment was simplified, and features additional automation in the release.

Specific improvements include:

Before you begin

  • Complete Prerequisites for deploying HCL Commerce Version 9.0 with Docker Compose to obtain the required software and prepare the environment database for the deployment.
  • Review the differences between an authoring and live environment.
    A live environment includes the capabilities that are needed for a running HCL Commerce production site and serve end-user traffic.
    An authoring environment, commonly referred to as auth, includes extra capabilities beyond the capabilities of a live environment. In an authoring environment, site administrators or business users can make changes to your store and then test and preview the changes. Once confirmed to be correct, the changes can then be propagated to the live environment. The authoring environment also has workspaces enabled. This workspace feature allows business users fine-grained control over site changes before they are propagated to the live environment. For more information on the authoring environment, see Authoring environment.
  • Review the available HCL Commerce topologies. The main distinction in topologies depends on the search solution that is user.
    Elasticsearch-based search deployment
    • Commerce applications:
      • ts-app
      • ts-web
      • tooling-web
      • query
      • Optional: store-web
      • Optional: store
      • Optional: graphql
      • Optional: utils
      • Optional: xc
    • Data applications:
      • Commerce Elasticsearch-based search:
        • nifi
        • data-query
        • ingest
        • registry
      • Third-party:
        • elasticsearch
        • zookeeper
        • redis
    Solr-based search deployment
    • Commerce applications (auth environment):
      • ts-app
      • ts-web
      • tooling-web
      • search_master
      • redis (third-party)
      • Optional: store-web
      • Optional: store
      • Optional: graphql
      • Optional: utils
      • Optional: xc
      • Optional: cache-app
    • Commerce applications (live environment):
      • ts-app
      • ts-web
      • tooling-web
      • search_repeater
      • search_slave
      • redis (third-party)
      • Optional: store-web
      • Optional: store
      • Optional: graphql
      • Optional: utils
      • Optional: xc
      • Optional: cache-app

About this task

This section provides a method for deploying an authoring and live environment by using native Docker Compose scripts. Use this method to learn and understand how the authoring and live environments interact. You can also use this method to explore the different application topologies that are required for the various combinations of HCL Commerce solutions that are available. When you are ready to create a production environment to serve end-users, you will want to build a more complex system, for greater and more fine-grained control over your deployment.

  • For more information on planning your production environment, see  Planning your production environment.
  • For more information on the various production environment topologies, based on the HCL Commerce search and store solutions, see HCL Commerce production environment overview.
  • To explore the deployment in greater detail, or for a finer control over your deployment, you can opt for a custom manual deployment. With this method you can configure your Docker Compose deployment configuration (docker-compose.yml) and Docker environment (.env) files manually, create custom Docker images for your deployment, and implement your own data persistence.


  1. Prepare your persisted volumes.
    The /volumes/ directory contains all of the persisted files for your deployment.

    For a description of the /volumes/ directory, and its contents see The Docker Compose deployment /volume/ directory structure and contents.

    To prepare your persistent volumes directory:
    1. Set file permission for your persistent volumes.

      Some volumes are mounted to your running containers and require write permissions.

      Recursively set write access to /volumes/ to ensure that it and all of the contained sub-directories are writable.

    2. Place any required files into their respective /volumes/ directories.
      • The database driver for Oracle databases.
  2. Configure your deployment and its environment through modification or replacement of the configuration file.
    1. Open the file for editing.
    2. Modify the environment variables and deployment parameters to reflect the environment that you want to be deployed.
      For more information on the configuration file, and specific deployment topology requirements, see The Docker Compose deployment configuration file.
    3. Save a backup copy with a descriptive name if you want to deploy or tear down this configuration at a later time.
  3. Automatically generate the deployment Docker Compose file and Docker environment file, and start the deployment.

    Run the deployment bash script.

    In a command prompt, run ./

    The script produces the final Docker Compose file and Docker environment file based on the specified configuration in, and brings your deployment online.

    The final Docker Compose file will be docker-compose-commerce.yml for the HCL Commerce deployment, or docker-compose-data.yml for HCL Commerce Search with Elasticsearch.

    The deployment will set the project to commerce, so the created Docker services will have commerce_ prefix. For example, commerce_txn_1.

  4. Verify that all the containers are up and healthy.


The deployment is created, and started. You can now interact with each running HCL Commerce service, and explore each HCL Commerce solution.
Service URL
Management Center for HCL Commerce https://commerceHost:8000/lobtools
Aurora B2C store https://commerceHost:8443/wcs/shop/en/auroraesite
Aurora B2B store https://commerceHost:8443/wcs/shop/en/aurorab2besite

What to do next

To tear down the HCL Commerce deployment in a Linux environment, you can run the teardown script.