HCL Commerce Version 9.1.6.0 or later

Updating IBM software in HCL Commerce WebSphere Application Server V8.5.5 Liberty-based Docker images (9.1.6.0 to 9.1.13.0)

To ensure that your site remains up-to-date with any important fixes that are delivered subsequent to the latest HCL Commerce release, or to continue to use older HCL Commerce release images, this group of tasks can be used to manually rebuild custom images to include important IBM stack updates.

For HCL Commerce Version 9.1, this includes the search-app, crs-app, search-query-app, mustgather-app, ingest-app, cache-app, and xc-app.

Before you begin

Review Updating IBM software in HCL Commerce Docker images (9.1.6.0 to 9.1.13.0) for important notes, prerequisites, and contextual information about this task.

Procedure

  1. Download and extract the sample Dockerfile scripts and Installation Manager response files into the directory where you build your images.
    These sample archives place template Installation Manager response files in the correct directories. The archive also contains unique sample Dockerfiles for each stack item to illustrate how to integrate response files for each type of upgrade into the Dockerfile.

    For each WebSphere Application Server V8.5.5 Liberty-based image, a Dockerfile is constructed from these samples.

    The Dockerfile additions can be used to install:
    • A WebSphere Application Server V8.5.5 Liberty fix pack.
    • One or more WebSphere Application Server V8.5.5 Liberty interim fixes.
    • An update to the WebSphere Application Server V8.5.5 Liberty IBM Java SDK.
    To update an image with multiple items, the associated Dockerfile will both download and extract each package individually, and then call Installation Manager multiple times to install them.
  2. For each fix pack, interim fix, or Java SDK update, edit the associated Installation Manager response file.
    These files contain a <repository> section that describes the location of the specific installation file, and an <install> section, which includes the specific instructions to Installation Manager on what to install within the container. Each product requires this section to correctly reference its version or ID, and its features.

    Once created, the name and locations of these files will be referenced within your Dockerfile.

    1. Uncomment and configure the <repository> section.
      Point the location of the repository to the unique directory within the image where your package will be extracted to.
      For example:
      <repository location='/SETUP/tmp/packages/21.0.0.5-WS-WLP-IFPH36923/'/>
      Note: The extracted package creates a directory with a name that is the same as the package archive name. Do not include any file extensions.
    2. Uncomment and configure the <offering> section.
      This is unique to each WebSphere Application Server V8.5.5 Liberty fix pack, interim fix, or IBM Java SDK update, and must align with the specific package that is set as the repository. The following table highlights the different profile requirements for fix packs, interim fixes, and IBM Java SDK updates. You can obtain the value for version or id by extracting each update package and examining repository.xml.
      Stack product Configuration
      WebSphere Application Server V8.5.5 Liberty
      • To apply a fix pack, include the following, and modify the value for version.
        <offering profile='WebSphere Liberty V8.5' id='com.ibm.websphere.liberty.BASE.v85' version='8.5.240004.20240408_2001' features='liberty'/>
        Important: If you use the eXtreme Scale Client, you must contact HCL Support for instructions on re-installing it after a WebSphere Application Server V8.5.5 Liberty fix pack is applied.
      • To apply an interim fix, include the following, and modify the value for id.
         <offering profile='WebSphere Liberty V8.5' id='21.0.0.5-WS-WLP-IFPH36923'/>
        Note: You can include additional lines in order to apply multiple interim fixes.
      • To apply an IBM Java SDK update, include the following, and modify the value for version.
         <offering profile='WebSphere Liberty V8.5' id='com.ibm.java.jdk.v8' version='8.0.6030.20210512_0631' features='com.ibm.sdk.8'/>
  3. Create or modify your image Dockerfiles.
    Using the following as a template, create or modify your Dockerfile and include values to conform to your prerequisite software update requirements.

    For each update within the image, ensure that you duplicate and modify the download, extraction, and installation steps.

    For example, if you are including a fix pack, two interim fixes, and an SDK update, there will be a total of four separate wget, unzip, and installation commands.

    # Switch to root user
    USER root
    
    # Using current image
    FROM commerce/image-name:9.1.x.x
    
    # Copy the tmp directory
    COPY SETUP/ /SETUP/
    
    # Create and enter temporary directory
    RUN mkdir -p /SETUP/tmp/packages/ && \
    cd /SETUP/tmp/packages/ && \
    
    # Download update package
    wget --user=username --password=password ftp://FTP-Server-URL/location-to-file/filename.zip && \
    
    # Extract update package to temporary directory
    unzip /SETUP/tmp/packages/filename.zip -d /SETUP/tmp/packages/filename && \
    
    # Install update package
    /opt/WebSphere/IM/eclipse/tools/imcl input /SETUP/libertyResponseFile/install-file.xml -log /SETUP/libertyResponseFile/install-file-log.log -acceptLicense && \
    
    # Delete temporary directory
    rm -rf /SETUP/tmp/ && \
  4. Build a new custom Docker image containing the prerequisite update changes. If you are building multiple images, repeat this step for each one.
    Run the following command with your own repository name, release version, image name, and tag.
    docker build -t commerce.companyabc.com/9.1.x.x/imagename:imagetag .
    A new image is generated using the customized Dockerfile. The created image contains each fix pack, interim fix, and/or SDK update that was configured and installed during the build process.
  5. Verify that the prerequisite software updates are successfully applied.
    1. Deploy a container with the newly created image.
      docker run -d -it --entrypoint /bin/bash -e LICENSE=accept imageid
    2. Verify the running version of the updated prerequisite product.
      Prerequisite product Version verification command
      WebSphere Application Server V8.5.5 Liberty
      • To verify a fix pack:
        cd /opt/WebSphere/Liberty/bin
        ./productInfo version
      • To verify an interim fix:
        cd /opt/WebSphere/Liberty/bin
        ./productInfo version --ifixes
      • To verify the IBM Java SDK:
        cd /opt/WebSphere/Liberty/java/8.0/bin
         ./java -version

Results

Your custom Docker image is generated, containing any updated prerequisite IBM software. You must repeat this process for each HCL Commerce image with IBM software in your deployment. Then, you must fully test and deploy these images into your production environment.