This repository includes a docker image framework for IBM Integration Bus according to container best practices.
The framework consists of two Layers:
- RuntimeLayer: This repository includes the different images that are prepared and form the foundation for the the AppLayer.
- AppLayer: This repository include a template for a developer to develop his own immutable image for his applications.
This repository includes the source code for the following RuntimeLayer images from which the developer can select as the foundation for his AppLayer image:
iib-10.0.0.6
: Creates an Ubuntu 14.04 image with IIB in version10.0.0.6
iib-10.0.0.6-mqclient
: Adds MQClient 9 to theiib-10.0.0.6
image
- Default config of IIB:
- nodename: MYNODE
- integrationservername: default
- two users for the webadminui, also to be used when connecting from IIB Toolkit to the Integrationnode:
- admin:
- can read, write, execute
- password must be set by definining it in the IIB_ADMINPW variable
- observer:
- can read only
- password must be set by definining it in the IIB_OBSERVERPW variable
- admin:
- Environment variables:
- IIB_TRACEMODE: this can be set to
on
oroff
to en/disable trace nodes. - IIB_LICENSE: this must be set to
accept
to indicate that you accepted the IBM License Agreement - IIB_SKIPDEPLOY: Skip deployment of IIB applications, useful in development
- IIB_GLOBALCACHE: if set to
internal
the global cache on IIB is just enabled. If set toexternal
the connection to an external IBM Extreme Scale is configured. This requires the following environment variables to be set:- IIB_GC_USER: username to connect to IBM Extreme Scale
- IIB_GC_PASSWD: password to connect to IBM Extreme Scale
- IIB_GC_CATALOGENDPOINT: catalogendpoint to connect to IBM Extreme Scale
- IIB_GC_GRIDNAME gridname to connect to IBM Extreme Scale
- IIB_TRACEMODE: this can be set to
- Exposed Ports:
- 4414: Port of the IIB Admin WebUi and for remote debugging in IBM Integration Bus Toolkit
- 7800: Port of the HTTP Listener
If you have the need for a new image or want to modify one of the existing runtime images:
- Update or add a Version Number in the
env
file and run it. ./env
- Create a new folder with a new definition of a runtime layer image.
- Add the image to the
docker-compose
file according to the other images. - Build the image with
docker-compose build
(e.g.docker-compose build iib-mqclient
) test it locally and if ok then check into git repo. - Push the image into the container repository of your choice for applicaiton developers to use.
- Deploying (stage specific) artefacts (bar files) at run time by getting it from a config server. Has the disadvantage that this requires multiple files for each stage. Leading to the problem that you might forget to update the artefact on all stages. IMMUTABILITY VIOLATED.
- Mounting the deloyment artefacts from another container. In container plattforms like OpenShift or Kubernetes there is no possibility to specify dependencies between containers, this makes it complex (not impossible) to make it work and maintain.