Building the Docker Image for an Integration Server Instance
Building a Docker image for Integration Server consists of:
Creating a Dockerfile that will be used to create the
Integration Server image.
Creating a base image for
Integration Server.
Creating a Dockerfile for the custom packages to include in the
Integration Server image.
Creating an
Integration Server image containing custom packages.
Before building an
Integration Server image to use with Docker containers, make sure to complete the prerequisites listed in
Prerequisites for Building a Docker
Image.
For information, including prerequisites, about using an Integration Server running in a Docker container as the local development server for the local service development feature in , see webMethods Service Development Help.
To create a Docker image for Integration Server
1. Go to the Software AG_directory\IntegrationServer\docker directory.
2. Create a Dockerfile for the core of an Integration Server instance using one of the commands below. The Dockerfile is created in Software AG_directory.
Create a Dockerfile that specifies your choice of JDK or JRE and as many Wm packages as you want to include (that is, system packages and hosted product packages, such as
Trading Networks Server) by running the
createDockerFile command below. The file is stored in the Software AG directory.
is_container.sh createDockerfile [optional arguments]
Argument | Description |
-Dimage.name= baseImageName | Optional. Base image such as ubuntu or centos:7. Default: centos:7 |
-Dinstance.name= instance_ name | Optional. Integration Server instance to include in the image. Default: default (The instance named default.) |
-Dport.list= ports | Optional. Comma-separated list of the ports on the instance to expose in the image. Default: 5555,9999 |
-Dpackage.list= Wm packages | Optional. Comma-separated list of Wm packages on the instance to include in the image. Default: all (this includes all of the Wm packages and the Default package) |
-Dinclude.jdk={true|false} | Optional. Whether to include the Integration Server JDK (true) or JRE (false) in the image. Default: true |
-Dfile.name= Dockerfile_name | Optional. Filename for the generated Dockerfile. Default: Dockerfile_IS |
-Dtarget.configuration= configuration_name | Optional. Target configuration of Integration Server for which the Dockerfile is being created. If the Dockerfile is for an Integration Server that will be used as the local development server, specify: localdev For more information about using an Integration Server running in a Docker container as the local development server for the local service development feature in , see webMethods Service Development Help. |
Create a Dockerfile that includes only a JRE and only the minimum system packages required for
Integration Server to operate (WmRoot, WmPublic, and WmCloud) by running the
createLeanDockerfile command below.
is_container.sh createLeanDockerfile [optional arguments]
The optional arguments are -Dimage.name, -Dinstance.name, -Dport.list, -Dfile.name, and -Dtarget.configuration.
3. Build a Docker image with the core Dockerfile by running the build command below. The image is stored in the local Docker registry located at Software AG_directory/ Integration Server_directory .
is_container.sh build [optional arguments]
Argument | Description |
-Dfile.name= Dockerfile_name | Optional. Filename of the Dockerfile to use to build the Docker image. Default: Dockerfile_IS |
-Dimage.name= Docker_ image_name | Optional. Name for the generated Docker image. Default: is:micro |
4. Create a Dockerfile that specifies the custom packages to include in the Docker image by running the createPackageDockerfile command below. The Dockerfile for the custom packages is stored in the Software AG_directory/ Integration Server_directory /instances/instance name/packages directory.
is_container.sh createPackageDockerfile [optional arguments]
Argument | Description |
-Dinstance.name= instance_name | Optional. Integration Server instance that includes the user-defined packages. Default: default (The instance named default.) |
-Dimage.name= Docker_image_name | Optional. Name of the core Integration Server image on which this image should be built. Default: is:micro |
-Dpackage.list= packages | Optional. Comma-separated list of the custom packages to include in the image. Default: all “all” indicates that the image for packages will include all the custom packages on the Integration Server instance. The Default package and packages beginning with “Wm” will not be included in the image. Note: | Make sure to include any custom packages containing services that you want to expose to consumers when Integration Server runs in a Docker container in Integration Cloud. If you do not include a package that contains an exposed service a request for the service fails with a service not found error when Integration Cloud redirects the request to the Docker container. |
|
-Dfile.name= Dockerfile_name | Optional. Filename for the Dockerfile that contains the custom packages. Default: Dockerfile_IS_Pkg |
5. Build the Docker image with the custom packages Dockerfile by running the buildPackage command below. The image is stored in the local Docker registry.
is_container.sh buildPackage [optional arguments]
Argument | Description |
-Dinstance.name= instance_ name | Optional. Integration Server instance that includes the user-defined packages. Default: default (The instance named default.) |
-Dfile.name= Dockerfile_name | Optional. Filename for the Dockerfile that contains the custom packages. Default: Dockerfile_IS_Pkg Docker build uses the file with the specified name located in the packages directory of the specified instance, specifically: Software AG_directory/ Integration Server_directory /instances/instance name/packages/ |
-Dimage.name= Docker_image_name | Optional. Name for the generated Docker image that contains the custom packages. Default: is:microPkg |
6. Optionally, based on your requirements, execute one or more of the following command line arguments: