Extending the Base Docker Image

The TIBCO BusinessWorks Container Edition base Docker image must be uploaded to your Docker environment before deploying any applications.

The base Docker image extends supports to the following:

  • Third-party drivers

  • OSGI bundles

  • Integration with application configuration management systems

  • Application certificate management

Before you begin

Create the base Docker image for the Linux or Windows container following steps in Creating the BWCE Base Docker Image for Linux Containers or Creating the BWCE Base Docker Image for Windows Container.

The base Docker image can be extended in the following ways:
  • Provision supported JDBC drivers
    1. Run bwinstall[.exe] help from <BWCE_HOME>/bin and follow instructions to add the driver to your TIBCO BusinessWorks Container Edition installation.
    2. Copy all the contents from <TIBCO_HOME>/bwce/version/config/drivers/shells/<driverspecific runtime>/runtime/plugins/ to a temporary folder.
    3. From the temporary folder, use the Dockerfile given below to copy these jars into the base Docker image:
      FROM tibco/bwce:latest
      COPY . /resources/addons/jars
      
  • Provision the OSGi bundle jars
    1. Copy the OSGified bundle jars into a temporary folder.
    2. From the temporary folder, use the Dockerfile given below to copy these jars into the base Docker image:
      FROM tibco/bwce:latest
      COPY . /resources/addons/jars
      
  • Application Configuration Management

    For more information, see Using Configurations from Configuration Management Services.

  • Certificate Management

    Certificates are used by applications to connect to different systems. For example, a certificate to connect to the TIBCO Enterprise Message Service.

    Bundling certificates with your application is not a good idea as you would need to rebuild your application when the certificates expire. To avoid that, copy your certificates into a temporary folder. From the temporary folder, use the Dockerfile given below to copy these certificates into the base Docker image:

    FROM tibco/bwce:latest
    COPY . /resources/addons/certs
    

    Once the certificates expire, you can copy the new certificates into the base Docker image without rebuilding your application. Deploy your application with the base Docker image. To access the certificates folder from your application, use the environment variable BW_KEYSTORE_PATH. For example, #BW_KEYSTORE_PATH#/mycert.jks in your application property.

  • Provision the TIBCO BusinessWorks™ Container Edition Plug-in Runtime

    To add TIBCO certified plug-ins:

    1. Download the appropriate Plug-in packaging. For example, the TIBCO ActiveMatrix BusinessWorks™ Plug-in for WebSphere MQ, from https://edelivery.tibco.com.
    2. Locate the plug-in zip file, <product id>_ePaas.zip or TIB_<version>_<build number>_bwce-runtime.zip from the downloaded artifacts and copy into a temporary folder. From the temporary folder, use the Dockerfile given below to copy these plug-in runtime zip files into the base Docker image:
      FROM tibco/bwce:latest
      COPY *.zip /resources/addons/plugins
      

    To add plug-ins created using the TIBCO ActiveMatrix BusinessWorks™ Plug-in Development Kit to runtime into your base Docker image:

    1. Install the plug-in if it is not installed.
    2. Navigate to the TIBCO_HOME/bwce/palettes/<plug in name>/<plugin version> directory and zip the lib and runtime folders into <plugin name>.zip.
    3. Copy <plugin name>.zip to a temporary folder.
    4. From the temporary folder, use the Dockerfile given below to copy these plug-in runtime zip files into the base Docker image:
      FROM tibco/bwce:latest
      COPY *.zip /resources/addons/plugins
      
  • Provision the third-party installations to runtime

    To add the third-party installation to the Docker image:

    1. Package third-party client installation into zip.
    2. Copy the zip to a temporary folder.
    3. From the temporary folder, use the Dockerfile given below to copy the archive files into the base Docker image:
      FROM tibco/bwce:latest
      COPY *.zip /resources/addons/thirdparty-installs
      
    4. Build the Docker image:
      docker build -t YOUR-TAG.
  • Provision to add custom JDBC driver
    1. Follow the steps outlined in the Enabling Custom Drivers section of theJDBC Connection topic in the Bindings and Palette Reference guide. After the project has been exported as a plug-in, locate the JAR in the plug-ins folder and copy it to a temporary folder.
    2. From the temporary folder, use the Dockerfile given below to copy these jars into the base Docker image:
      FROM tibco/bwce:latest
      COPY . /resources/addons/jars
      
  • Provision to add custom JMS driver
    1. Follow the steps outlined in the Enabling Custom Drivers section of theJNDI Connection topic in the Bindings and Palette Reference guide. After the project has been exported as a plug-in, locate the JAR in the plug-ins folder and copy it to a temporary folder.
    2. From the temporary folder, use the Dockerfile given below to copy these jars into the base Docker image:
      FROM tibco/bwce:latest
      COPY . /resources/addons/jars
      
  • Provision to use custom logs
    1. Create a folder custom-logback in the resources/addons folder.
    2. Add the customized Logback file in the folder. The name of the Logback file should be logback.xml.
      Note: While running the application, set the environment variable CUSTOM_LOGBACK="true".
What to do next

Open a command terminal from the temporary folder where you created the Dockerfile and run:

docker build -t TAG-NAME . 

For example,

docker build -t tibco/bwce-oracledriver:latest .

Provisioning Custom Profile

  1. Create and export an application profile as a substvar file. For more information on how to export an application profile see, Exporting an Application Profile. While exporting the application profile, select the Include System Properties checkbox.
  2. Copy the substvar file to the base Docker image:
    FROM tibco/bwce:latest
    COPY *.substvar /
  3. Build the Docker image:
    docker build -t YOUR-TAG.
  4. Set the BW_PROFILE environment variable and run the application providing the substvar profile name.