Building the Docker Image for an API Gateway Instance
The API Gateway docker image provides an API Gateway installation. Depending on the existing installation the image provides a standard API Gateway or an advanced API Gateway. When running the image the API Gateway is started. The API Gateway image is created on top of an Integration Server image.
![*](icon_task_xpe.png)
To build a Docker image for an
API Gateway instance
1. Create a docker file for the Integration Server (IS) instance by running the following command:
is_container.sh createDockerfile [optional arguments]
Argument | Description |
-Dinstance.name | Optional. IS instance name to include in the image. Default: default |
-Dport.list | Optional. Comma-separated list of the ports on the instance to expose in the image. Default: 5555,9999 |
-Dpackage.list | 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 | Optional. Whether to include the Integration Server JDK (true) or JRE (false) in the image. Default: true |
-Dfile.name | Optional. File name for the generated docker file. Default: Dockerfile_IS |
2. Build the IS docker image using the docker file Dockerfile_IS by running the following command:
is_container.sh build [optional arguments]
Argument | Description |
-Dfile.name | Optional. File name of the docker file to use to build the Docker image. Default: Dockerfile_IS |
-Dimage.name | Optional. Name for the generated docker image. Default: is:micro |
3. Create a docker file for the API Gateway instance from the IS image is:micro by running the following command:
apigw_container.sh createDockerfile [optional arguments]
Argument | Description |
instance.name | Optional. API Gateway instance to include in the image. Default: default |
port.list | Comma-separated list of the ports on the instance to expose in the image. Default: 9072 |
base.image | Name of the base Integration Server image upon which this image should be built.. Default: is:micro |
file.name | Optional. File name for the generated docker file. Default: Dockerfile_IS_APIGW |
The docker file is created under the root Integration Server installation directory.
4. Build the API Gateway docker image using the core docker file Dockerfile_IS_APIGW by running the following command:
apigw_container.sh build [optional arguments]
Argument | Description |
instance.name | Optional. API Gateway instance to include in the image. Default: default |
file.name | File name of the docker file to use to build the docker image. Default: Dockerfile_IS_APIGW |
image.name | Optional. Name for the generated docker image that contains the custom packages. Default: is:apigw |
The image is stored on the docker host. To check the image run the command $ docker images
Example
A sample shell script for creating and an API Gateway looks as follows:
echo "is createDockerfile ======================================================="
./is_container.sh createDockerfile
status=$?
if [ $status -ne 0 ]
then
echo "Failed! status: $status"
exit $status
fi
echo "is build =================================================================="
./is_container.sh build
status=$?
if [ $status -ne 0 ]
then
echo "Failed! status: $status"
exit $status
fi
echo "apigw createDockerfile =================================================="
./apigw_container.sh createDockerfile
status=$?
if [ $status -ne 0 ]
then
echo "Failed! status: $status"
exit $status
fi
echo "apigw build ============================================================="
./apigw_container.sh build
status=$?
if [ $status -ne 0 ]
then
echo "Failed! status: $status"
exit $status
fi
After running the steps the created images can be listed using the docker images command: docker images
REPOSITORY TAG IMAGEID CREATED SIZE
is apigw af29373fc98a 15 hours ago 1.3GB
is micro 06e7c0de4807 15 hours ago 1.1GB
centos 7 36540f359ca3 12 days ago 193MB
Note:
The is:micro and therefore also the is:apigw images are based on the centos:7 image, which is available from the official CentOS repository