webMethods 10.2 | Integration Server Administrator's Guide | Using Integration Server with Docker | Building the Docker Image for an Integration Server Instance
 
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:
*saveImage to save an Integration Server image to a file. For more information about saveImage, see Loading a Docker Image to an On-Premise Docker Registry.
*loadImage to load an image to a Docker registry. For more information about loadImage, see Pushing a Docker Image to an On-Premise Docker Registry
*pushImage to push an Integration Server image created for an on-premise Integration Server to the Integration Cloud or a Docker registry. For more information about pushing an image to a Docker registry or Integration Cloud, see Pushing a Docker Image to an On-Premise Docker Registry and Pushing the Docker Image to Integration Cloud

Copyright © 2017-2018 | Software AG, Darmstadt, Germany and/or Software AG USA, Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or their licensors.
Innovation Release