Create or update an image

If you have access to the My Oracle Support (MOS), and there is a need to build a new image with a patch (bundle or interim), it is recommended to use the WebLogic Image Tool to build an Oracle SOA Suite image for production deployments.

Create or update an Oracle SOA Suite Docker image using the WebLogic Image Tool

Using the WebLogic Image Tool, you can create a new Oracle SOA Suite Docker image (can include patches as well) or update an existing image with one or more patches (bundle patch and interim patches).

Recommendations:

  • Use create for creating a new Oracle SOA Suite Docker image either:
    • without any patches
    • or, containing the Oracle SOA Suite binaries, bundle patch and interim patches. This is the recommended approach if you have access to the Oracle SOA Suite patches because it optimizes the size of the image.
  • Use update for patching an existing Oracle SOA Suite Docker image with a single interim patch. Note that the patched image size may increase considerably due to additional image layers introduced by the patch application tool.

Set up the WebLogic Image Tool

Prerequisites

Verify that your environment meets the following prerequisites:

  • Docker client and daemon on the build machine, with minimum Docker version 18.03.1.ce.
  • Bash version 4.0 or later, to enable the command complete feature.
  • JAVA_HOME environment variable set to the appropriate JDK location.
Set up the WebLogic Image Tool

To set up the WebLogic Image Tool:

  1. Create a working directory and change to it. In these steps, this directory is imagetool-setup.

    $ mkdir imagetool-setup
    $ cd imagetool-setup
    
  2. Download the latest version of the WebLogic Image Tool from the releases page.

  3. Unzip the release ZIP file to the imagetool-setup directory.

  4. Execute the following commands to set up the WebLogic Image Tool on a Linux environment:

    $ cd imagetool-setup/imagetool/bin
    $ source setup.sh
    
Validate setup

To validate the setup of the WebLogic Image Tool:

  1. Enter the following command to retrieve the version of the WebLogic Image Tool:

    $ imagetool --version
    
  2. Enter imagetool then press the Tab key to display the available imagetool commands:

    $ imagetool <TAB>
    cache   create  help    rebase  update
    
WebLogic Image Tool build directory

The WebLogic Image Tool creates a temporary Docker context directory, prefixed by wlsimgbuilder_temp, every time the tool runs. Under normal circumstances, this context directory will be deleted. However, if the process is aborted or the tool is unable to remove the directory, it is safe for you to delete it manually. By default, the WebLogic Image Tool creates the Docker context directory under the user’s home directory. If you prefer to use a different directory for the temporary context, set the environment variable WLSIMG_BLDDIR:

$ export WLSIMG_BLDDIR="/path/to/buid/dir"
WebLogic Image Tool cache

The WebLogic Image Tool maintains a local file cache store. This store is used to look up where the Java, WebLogic Server installers, and WebLogic Server patches reside in the local file system. By default, the cache store is located in the user’s $HOME/cache directory. Under this directory, the lookup information is stored in the .metadata file. All automatically downloaded patches also reside in this directory. You can change the default cache store location by setting the environment variable WLSIMG_CACHEDIR:

$ export WLSIMG_CACHEDIR="/path/to/cachedir"
Set up additional build scripts

Creating an Oracle SOA Suite Docker image using the WebLogic Image Tool requires additional container scripts for Oracle SOA Suite domains.

  1. Clone the docker-images repository to set up those scripts. In these steps, this directory is DOCKER_REPO:

    $ cd imagetool-setup
    $ git clone https://github.com/oracle/docker-images.git
    
  2. Copy the additional WebLogic Image Tool build files from the operator source repository to the imagetool-setup location:

    $ mkdir -p imagetool-setup/docker-images/OracleSOASuite/imagetool/12.2.1.4.0
    $ cd imagetool-setup/docker-images/OracleSOASuite/imagetool/12.2.1.4.0
    $ cp -rf ${WORKDIR}/imagetool-scripts/* .
    

Note: If you want to create the image continue with the following steps, otherwise to update the image see update an image.

Create an image

After setting up the WebLogic Image Tool and required build scripts, follow these steps to use the WebLogic Image Tool to create a new Oracle SOA Suite Docker image.

Download the Oracle SOA Suite installation binaries and patches

You must download the required Oracle SOA Suite installation binaries and patches as listed below from the Oracle Software Delivery Cloud and save them in a directory of your choice. In these steps, this directory is download location.

The installation binaries and patches required for release 24.4.2 are:

  • JDK:

    • jdk-8u431-linux-x64.tar.gz
  • Fusion Middleware Infrastructure installer:

    • fmw_12.2.1.4.0_infrastructure.jar
  • Oracle SOA Suite installers:

    • fmw_12.2.1.4.0_soa.jar
    • fmw_12.2.1.4.0_osb.jar
    • fmw_12.2.1.4.0_b2bhealthcare.jar

In this release, Oracle B2B is not supported to be configured, but the installer is required for completeness.

  • Fusion Middleware Infrastructure patches:

    • p28186730_1394217_Generic.zip (OPATCH 13.9.4.2.17 FOR EM 13.5 AND FMW/WLS 12.2.1.4.0 AND 14.1.1.0.0)
    • p37087476_122140_Generic.zip (WLS PATCH SET UPDATE 12.2.1.4.240922)
    • p37103277_122140_Generic.zip (FMW THIRDPARTY BUNDLE PATCH 12.2.1.4.240925)
    • p36316422_122140_Generic.zip (OPSS BUNDLE PATCH 12.2.1.4.240220)
    • p37035947_122140_Generic.zip (OWSM BUNDLE PATCH 12.2.1.4.240908)
    • p37028738_122140_Generic.zip (ADF BUNDLE PATCH 12.2.1.4.240905)
    • p37049907_122140_Generic.zip (Coherence 12.2.1.4 Cumulative Patch 23 (12.2.1.4.23))
    • p33093748_122140_Generic.zip (FMW PLATFORM 12.2.1.4.0 SPU FOR APRCPU2021)
    • p37056593_122140_Generic.zip (OCT 2024 CLONING SPU FOR FMW 12.2.1.4.0)
    • p35965629_122140_Linux-x86-64.zip (ADR FOR WEBLOGIC SERVER 12.2.1.4.0 CPU JAN 2024)
    • p36926636_122140_Generic.zip (JDBC 19.24 BUNDLE PATCH 12.2.1.4.240814)
    • p36851321_122140_Generic.zip (RDA release 24.4-20241015 for FMW 12.2.1.4.0)
    • p36964687_122140_Generic.zip (WEBCENTER CORE BUNDLE PATCH 12.2.1.4.240819)
    • p34065178_122140_Generic.zip (OVD One Off)
    • p34542329_122140_Generic.zip (EM One Off)
    • p34765492_122140_Generic.zip (EM One Off)
    • p36426672_122140_Generic.zip (WLS One Off)
    • p34809489_122140_Generic.zip (JDEV One Off)
  • Oracle SOA Suite and Oracle Service Bus patches

    • p37082056_122140_Generic.zip (SOA BUNDLE PATCH 12.2.1.4.240919)
    • p36918958_122140_Generic.zip (OSB BUNDLE PATCH 12.2.1.4.240805)
    • p33404495_122140_Generic.zip (SOA One-off)
    • p32827327_122140_Generic.zip (OSB One-off)
    • p31713053_122140_Linux-x86-64.zip (One-off patch)
Update required build files

The following files in the code repository location <imagetool-setup-location>/docker-images/OracleSOASuite/imagetool/12.2.1.4.0 are used for creating the image:

  • additionalBuildCmds.txt
  • buildArgs
  1. In the buildArgs file, update all occurrences of %DOCKER_REPO% with the docker-images repository location, which is the complete path of <imagetool-setup-location>/docker-images.

    For example, update:

    %DOCKER_REPO%/OracleSOASuite/imagetool/12.2.1.4.0/

    to:

    <imagetool-setup-location>/docker-images/OracleSOASuite/imagetool/12.2.1.4.0/

  2. Similarly, update the placeholders %JDK_VERSION% and %BUILDTAG% with appropriate values.

  3. Update the response file <imagetool-setup-location>/docker-images/OracleFMWInfrastructure/dockerfiles/12.2.1.4/install.file to add the parameter INSTALL_TYPE="Fusion Middleware Infrastructure" in the [GENERIC] section.

Create the image
  1. Add a JDK package to the WebLogic Image Tool cache:

    $ imagetool cache addInstaller --type jdk --version 8u431 --path <download location>/jdk-8u431-linux-x64.tar.gz
    
  2. Add the downloaded installation binaries to the WebLogic Image Tool cache:

    $ imagetool cache addInstaller --type fmw --version 12.2.1.4.0 --path <download location>/fmw_12.2.1.4.0_infrastructure.jar
    
    $ imagetool cache addInstaller --type soa --version 12.2.1.4.0 --path <download location>/fmw_12.2.1.4.0_soa.jar
    
    $ imagetool cache addInstaller --type osb --version 12.2.1.4.0 --path <download location>/fmw_12.2.1.4.0_osb.jar
    
    $ imagetool cache addInstaller --type b2b --version 12.2.1.4.0 --path <download location>/fmw_12.2.1.4.0_b2bhealthcare.jar
    
    
  3. Add the downloaded OPatch patch to the WebLogic Image Tool cache:

    $ imagetool cache addEntry --key 28186730_13.9.4.2.17 --value <download location>/p28186730_1394217_Generic.zip
    
  4. Append the --opatchBugNumber flag and the OPatch patch key to the create command in the buildArgs file:

    --opatchBugNumber 28186730_13.9.4.2.17
    
  5. Add the downloaded product patches to the WebLogic Image Tool cache:

    
    $ imagetool cache addEntry --key 37087476_12.2.1.4.0 --value <download location>/p37087476_122140_Generic.zip
    
    $ imagetool cache addEntry --key 37103277_12.2.1.4.0 --value <download location>/p37103277_122140_Generic.zip
    
    $ imagetool cache addEntry --key 36316422_12.2.1.4.0 --value <download location>/p36316422_122140_Generic.zip 
    
    $ imagetool cache addEntry --key 37035947_12.2.1.4.0 --value <download location>/p37035947_122140_Generic.zip
    
    $ imagetool cache addEntry --key 37028738_12.2.1.4.0 --value <download location>/p37028738_122140_Generic.zip 
    
    $ imagetool cache addEntry --key 37049907_12.2.1.4.0 --value <download location>/p37049907_122140_Generic.zip 
    
    $ imagetool cache addEntry --key 33093748_12.2.1.4.0 --value <download location>/p33093748_122140_Generic.zip
    
    $ imagetool cache addEntry --key 37056593_12.2.1.4.0 --value <download location>/p37056593_122140_Generic.zip
    
    $ imagetool cache addEntry --key 35965629_12.2.1.4.0 --value <download location>/p35965629_122140_Linux-x86-64.zip
    
    $ imagetool cache addEntry --key 36926636_12.2.1.4.0 --value <download location>/p36926636_122140_Generic.zip
    
    $ imagetool cache addEntry --key 36851321_12.2.1.4.0 --value <download location>/p36851321_122140_Generic.zip
    
    $ imagetool cache addEntry --key 36964687_12.2.1.4.0 --value <download location>/p36964687_122140_Generic.zip
    
    $ imagetool cache addEntry --key 34065178_12.2.1.4.0 --value <download location>/p34065178_122140_Generic.zip
    
    $ imagetool cache addEntry --key 34542329_12.2.1.4.0 --value <download location>/p34542329_122140_Generic.zip
    
    $ imagetool cache addEntry --key 34765492_12.2.1.4.0 --value <download location>/p34765492_122140_Generic.zip
    
    $ imagetool cache addEntry --key 36426672_12.2.1.4.0 --value <download location>/p36426672_122140_Generic.zip
    
    $ imagetool cache addEntry --key 34809489_12.2.1.4.0 --value <download location>/p34809489_122140_Generic.zip
    
    
  6. Append the --patches flag and the product patch keys to the create command in the buildArgs file. The --patches list must be a comma-separated collection of patch --key values used in the imagetool cache addEntry commands above.

    Sample --patches list for the product patches added in to the cache:

    --patches 37087476_12.2.1.4.0,37103277_12.2.1.4.0,36316422_12.2.1.4.0,37035947_12.2.1.4.0,37028738_12.2.1.4.0,37049907_12.2.1.4.0,33093748_12.2.1.4.0,37056593_12.2.1.4.0,35965629_12.2.1.4.0,36926636_12.2.1.4.0,36851321_12.2.1.4.0,36964687_12.2.1.4.0,34065178_12.2.1.4.0,34542329_12.2.1.4.0,34765492_12.2.1.4.0,36426672_12.2.1.4.0,34809489_12.2.1.4.0  
    

    Example buildArgs file after appending the OPatch patch and product patches:

    create
    --jdkVersion 8u431
    --type soa_osb_b2b
    --version 12.2.1.4.0
    --tag oracle/soasuite:12.2.1.4.0
    --pull
    --fromImage ghcr.io/oracle/oraclelinux:7-slim
    --chown oracle:root
    --additionalBuildCommands <imagetool-setup-location>/docker-images/OracleSOASuite/imagetool/12.2.1.4.0/additionalBuildCmds.txt
    --additionalBuildFiles <imagetool-setup-location>/docker-images/OracleSOASuite/dockerfiles/12.2.1.4/container-scripts
    --installerResponseFile <imagetool-setup-location>/docker-images/OracleFMWInfrastructure/dockerfiles/12.2.1.4/install.file,<imagetool-setup-location>/docker-images/OracleSOASuite/dockerfiles/12.2.1.4/install/soasuite.response,<imagetool-setup-location>/docker-images/OracleSOASuite/dockerfiles/12.2.1.4/install/osb.response,<imagetool-setup-location>/docker-images/OracleSOASuite/dockerfiles/12.2.1.4/install/b2b.response
    --patches 37087476_12.2.1.4.0,37103277_12.2.1.4.0,36316422_12.2.1.4.0,37035947_12.2.1.4.0,37028738_12.2.1.4.0,37049907_12.2.1.4.0,33093748_12.2.1.4.0,37056593_12.2.1.4.0,35965629_12.2.1.4.0,36926636_12.2.1.4.0,36851321_12.2.1.4.0,36964687_12.2.1.4.0,34065178_12.2.1.4.0,34542329_12.2.1.4.0,34765492_12.2.1.4.0,36426672_12.2.1.4.0,34809489_12.2.1.4.0  
    

    Note: In the buildArgs file:

    • --jdkVersion value must match the --version value used in the imagetool cache addInstaller command for --type jdk.
    • --version value must match the --version value used in the imagetool cache addInstaller command for --type soa.
    • --pull always pulls the latest base Linux image oraclelinux:7-slim from the Docker registry. This flag can be removed if you want to use the Linux image oraclelinux:7-slim, which is already available on the host where the SOA image is created.

    Refer to this page for the complete list of options available with the WebLogic Image Tool create command.

  7. Create the Oracle SOA Suite image:

    $ imagetool @<absolute path to buildargs file>
    

    Note: Make sure that the absolute path to the buildargs file is prepended with a @ character, as shown in the example above.

    For example:

    $ imagetool @<imagetool-setup-location>/docker-images/OracleSOASuite/imagetool/12.2.1.4.0/buildArgs
    
    Click here to see the sample Dockerfile generated with the `imagetool` command.
  8. Check the created image using the docker images command:

      $ docker images | grep soasuite
    

Update an image

After setting up the WebLogic Image Tool and required build scripts, use the WebLogic Image Tool to update an existing Oracle SOA Suite Docker image:

  1. Enter the following command to add the OPatch patch to the WebLogic Image Tool cache:

    $ imagetool cache addEntry --key 28186730_13.9.4.2.17 --value <download location>/p28186730_1394217_Generic.zip
    
  2. Execute the imagetool cache addEntry command for each patch to add the required patch(es) to the WebLogic Image Tool cache. For example, to add patch p30761841_122140_Generic.zip:

    $ imagetool cache addEntry --key=30761841_12.2.1.4.0 --value <downloaded-patches-location>/p30761841_122140_Generic.zip
    
  3. Provide the following arguments to the WebLogic Image Tool update command:

    • –-fromImage - Identify the image that needs to be updated. In the example below, the image to be updated is soasuite:12.2.1.4.
    • –-patches - Multiple patches can be specified as a comma-separated list.
    • --tag - Specify the new tag to be applied for the image being built.

    Refer here for the complete list of options available with the WebLogic Image Tool update command.

    Note: The WebLogic Image Tool cache should have the latest OPatch zip. The WebLogic Image Tool will update the OPatch if it is not already updated in the image.

    Examples
    Click here to see the example 'update' command:
    Click here to see the example Dockerfile generated by the WebLogic Image Tool with the '--dryRun' option:
  4. Check the built image using the docker images command:

      $ docker images | grep soasuite
      soasuite   12.2.1.4-30761841
      2ef2a67a685b        About a minute ago   4.84GB
      $
    

Create an Oracle SOA Suite Docker image using Dockerfile

For test and development purposes, you can create an Oracle SOA Suite image using the Dockerfile. Consult the README file for important prerequisite steps, such as building or pulling the Server JRE Docker image, Oracle FMW Infrastructure Docker image, and downloading the Oracle SOA Suite installer and bundle patch binaries.

A prebuilt Oracle Fusion Middleware Infrastructure image, container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4, is available at container-registry.oracle.com. We recommend that you pull and rename this image to build the Oracle SOA Suite image.

  $ docker pull container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4
  $ docker tag container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4  oracle/fmw-infrastructure:12.2.1.4.0

Follow these steps to build an Oracle Fusion Middleware Infrastructure image, and then the Oracle SOA Suite image as a layer on top of that:

  1. Make a local clone of the sample repository:

    $ git clone https://github.com/oracle/docker-images
    
  2. Build the oracle/fmw-infrastructure:12.2.1.4 image:

     $ cd docker-images/OracleFMWInfrastructure/dockerfiles
     $ sh buildDockerImage.sh -v 12.2.1.4 -s
    

    This will produce an image named oracle/fmw-infrastructure:12.2.1.4.

  3. Tag the image as follows:

      $ docker tag oracle/fmw-infrastructure:12.2.1.4  oracle/fmw-infrastructure:12.2.1.4.0
    
  4. Download the Oracle SOA Suite installer from the Oracle Technology Network or e-delivery.

    Note: Copy the installer binaries to the same location as the Dockerfile.

  5. To build the Oracle SOA Suite image with patches, you must download and drop the patch zip files (for example, p29928100_122140_Generic.zip) into the patches/ folder under the version that is required. For example, for 12.2.1.4.0 the folder is 12.2.1.4/patches. Similarly, to build the image by including the OPatch patch, download and drop the OPatch patch zip file (for example, p28186730_1394217_Generic.zip) into the opatch_patch/ folder.

  6. Create the Oracle SOA Suite image by running the provided script:

    $ cd docker-images/OracleSOASuite/dockerfiles
    $ ./buildDockerImage.sh -v 12.2.1.4 -s
    

    The image produced will be named oracle/soasuite:12.2.1.4. The samples and instructions assume the Oracle SOA Suite image is named soasuite:12.2.1.4. You must rename your image to match this name, or update the samples to refer to the image you created.

    $ docker tag oracle/soasuite:12.2.1.4 soasuite:12.2.1.4