Linux

Deploying an HCL Commerce Version 9.0.0.0 to 9.0.1.17 live environment with Docker Compose

Deploy an HCL Commerce live environment, on a different machine from the authoring environment and define a search_repeater and search_slave to communicate with the search master on the authoring environment.

The search_repeater needs to add the authoring host’s IP address to extra_hosts, so the repeater can discover the location of the search_master.

Before you begin

  1. Ensure that the Docker images are loaded to your private Docker registry. If you are an administrator responsible for your Docker registry, see Downloading HCL Commerce software.
  2. Ensure that your machine has the minimum requirements of a 2 core processor, 8 GB RAM, and 50 GB free disk space.
  3. Ensure that you are deploying the live environment on a different machine from the authoring environment. If you deploy the authoring and live environments on the same machine, you will encounter port conflicts.
  4. Prepare a Db2 database for use with HCL Commerce or Prepare an Oracle database for use with HCL Commerce.
  5. Load the HCL Commerce production database schema by setting type=production.

Procedure

  1. Install Docker.
    1. Install Docker Version 19.03.8 or later.
    2. Install Docker Compose Version 1.24.1 or later.
    3. Consider creating a Docker Unix group.
      Note: You need to prefix sudo to Docker commands if you do not create a Docker Unix group. For more information, see .
  2. Download the following sample Docker Compose file based on how the database is configured.
    OptionDocker Compose sample
    Database running inside a Docker container Download the following file:
    Note: If the link does not prompt you to save, right-click and save the file. Open the file in a source code editor to view and edit in the proper YAML format.

    The YAML files are samples that assume that you are using a Db2 Docker image. Ensure that you update all the parameters that are in angle brackets <>. The sample files are commented with descriptions of the parameters.

    Database running on a standard server (not in a Docker container) Download the following file:
    Note: If the link does not prompt you to save, right-click and save the file. Open the file in a source code editor to view and edit in the proper YAML format.
    Ensure that you update all the parameters that are in angle brackets <>. The sample files are commented with descriptions of the parameters.
  3. Oracle Download the Oracle JDBC driver java/ojdbc8.jar file from the Oracle installation folder, and put it under the directory where you saved the Docker Compose file.
  4. In a command line interface, go to where you saved the Docker Compose file.
  5. Run the applicable command to deploy the Docker containers based on the Docker Compose file that you have.
    • docker-compose -f docker-compose-live.yml up -d
    • docker-compose -f docker-compose-live-extdb.yml up -d
    Note:
    • If the images are not already on your machine, the command downloads Docker images from your registry. The images are approximately 10 GB in total so the duration of this command depends on your Internet connection.
    • Whenever your Docker virtual machine is restarted, you need to manually restart the Docker containers by rerunning this docker-compose -f <file> up -d command.
  6. If you loaded sample data in your database, then replicate the search index from the authoring environment.
    1. Send the following REST request (POST) and add basic authentication with login as spiuser and the password for the spiuser.
      You can replicate the search index by using one of the following methods:
      • By using the curl utility. Use the following curl command with the spiuser plain text password.
        curl -k -u spiuser:<spiuserPassword> -X POST http://<search_repeater_hostname>:3737/search/admin/resources/index/replicate
      • By using a browser plug-in such as HttpRequester (for Mozilla Firefox) or Postman (for Google Chrome). Use the following URL and authenticate with user spiuser and the spiuser plain text password.
        http://<search_repeater_hostname>:3737/search/admin/resources/index/replicate
    2. Check the index status by issuing the following statusCheck command. A return status of OK means replication is successful.
      http://search_repeater_hostname:3737/solr/MC_10001_CatalogEntry_en_US/operation?command=statusCheck
      Example REST response:
      { "responseHeader":{ "status":0, "QTime":18}, 
      "command":"statusCheck", "status":"OK", 
      "Detailed Status":[ "Start Time","2018-08-30T07:25:07.757Z", "isMasterReplicationEnabled",true, 
      "isInvalidMasterError",false, "isReplicationFailed",false, "isNextExecutionAtPassed",false, 
      "isNextExecutionAtPassed.details",[ "nextExecutionAt","Thu Aug 30 15:39:58 CST 2018", "currentDate",
      "Thu Aug 30 15:25:07 CST 2018"], "isMasterSlaveIndexInSync",true, 
      "isMasterSlaveIndexInSync.details",[ "slaveIndexVersion",1535613375728, "slaveIndexGeneration",2, 
      "masterIndexVersion",1535613375728, "masterGeneration",2], "End Time","Thu Aug 30 15:25:07 CST 2018", 
      "Elapsed Time",0.018]}
  7. Check the total catentry number in the CatalogEntry index. Following is an example using the search core MC_10001_CatalogEntry_en_US response. If the numFound is not zero, the index was replicated to the slave.
    http://search_repeater_hostname:3737/solr/MC_10001_CatalogEntry_en_US/select?q=*%3A*
    Example REST response:
    { "responseHeader":{ "status":0, "QTime":0, "params":{ "q":"*:*"}}, 
    "response":{"numFound":3918,"start":0,"docs":[ { "catentry_id":"10001", "subscripType":"NONE
  8. Ensure that you can log in to the Management Center.
    • https://<transaction_server_hostname>:8000/lobtools/cmc/ManagementCenter
  9. Ensure that you can visit the sample Aurora store.
    • https://<store_server_hostname>:8443/wcs/shop/en/auroraesite