These images contain WSO2 ESB with an emphasis on ease of development and (image) extension.

Full Description

WSO2 ESB

These images contain WSO2 ESB with an emphasis on ease of development and (image) extension.

Available Versions:

5.0.0-jdk-8u112-slim (latest)

Usage

The simplest way to launch an ESB container is to run:

docker run -it -p 9443:9443 kallja/esb

This command only exposes the ESB management console port.

By default the images file systems are entirely stateless. That means that upon reboot you will lose any changes you've made to the container environment.

Directories

For your convenience, several ESB directories are made available at the file system root. The directories are:

/config -> $ESB_HOME/repository/conf

/carbonapps -> $ESB_HOME/repository/deployment/server/carbonapps

/deploy -> /repository/deployment/server/synapse-configs

The /deploy directory is special. If you provide a non-empty volume for it, the volume is expected to contain the necessary files for the ESB to boot (namely synapse.xml). If the provided volume is empty, it is copied over with ESB default content for the directory so that the ESB will successfully boot.

Persisting Data

The way to make these directories persistent is to use Docker volumes. You have two options. You can have Docker automatically manage the volumes or you can mount the volumes to a directory on the host machine. Docker run commands for doing the two are as follows:

Deploying Carbon Applications

As usual, there are three ways of deploying carbonapps the first one being the most preferred.

Copy the .car file into the carbonapps directory

Maven deployment

Deploy via the management console (cumbersome)

Process for the first one includes adding specifying a volume using a host directory. To map a host directory to a container directory run the image with:

docker run -it -v $(pwd)/esb/carbonapps:/carbonapps kallja/esb

You can then copy your .car file directory to the mapped directory on the host (here: $(pwd)/esb/carbonapps).

Configuration

The config directory is mostly provided with the ease of extensibility in mind.

There is no special handling for the /config directory (as opposed to /deploy). If you mount a volume on top of it, you will have to provide all required ESB config files yourself. If you wish to replace one of the default config files, the recommended approach is to create a new Docker image FROMing from this one and replacing the required file when building the image.

In some cases it makes sense to map only some or none of the volumes.

The following ports are exposed:

Port

Purpose

9443

ESB management console (HTTPS)

9763

ESB HTTP servlet port (required for tryit)

8280

ESB HTTP services

8243

ESB HTTPS services

Several environment variables, which may be of interest, are also present. These are: