How to run One Million UltraESB-X Docker instances… For Free!

Malith Jayaweera
Nov 14, 2017 · 3 min read

Although the title says that you can run 1 million Docker instances, technically you can now run an unlimited number of UltraESB-x Docker instances without spending a single dollar. One million was included with the sole purpose of making the title more attractive since it’s a cliché these days.

AdroitLogic released an UltraESB-X Docker image with its 17.07.1 release. However, most of our customers complained about the hassle they had to go through when obtaining a license.

That’s why we’ve decided to release a Docker image that could be used to run an unlimited number of instances, license-free. Now you can experience UltraESB-X with just a single command!

To continue with the guide, all you need is a working Docker installation. Once Docker is in place, just run:

docker run adroitlogic/ultraesb-x-base:17.07.2

Notice the brand new image name, ultraesb-x-base.

If you need to keep the ESB running in an interactive terminal,

docker run -it adroitlogic/ultraesb-x-base:17.07.2

This time, we’ve released two Docker images; UltraESB-X base image (ultraesb-x-base) and an UltraESB-X complete image (ultraesb-x-complete).

If you just need to try out UltraESB-X, the base image is a pretty decent and lightweight starting point; all facts in my previous blog on the ultraesb-x image are true for ultraesb-x-base as well.


Deploying a project with UltraESB-X

Running an ESB distribution without a project doesn’t make much sense. With our previous release, in order to try out a sample project, a user had to perform a volume mount to get the ESB to pick it up. This can be cumbersome for a non-technical user. That’s why this time we’ve also released a “complete” image with all sample projects. To run a sample project with the UltraESB-x complete image, just specify the sample project with the -sample option:

docker run adroitlogic/ultraesb-x-complete:17.07.2 -sample direct-proxy

You can view all the available sample projects by:

docker run adroitlogic/ultraesb-x-complete:17.07.2 -sample

If you need any help with startup options, just run:

docker run adroitlogic/ultraesb-x-complete:17.07.2 -h

When running the samples in the UltraESB-X image, sometimes you would need to override their configuration properties in order to customize things to work in your environment. For the sample specified in the above example, the properties file resides inside the image, at /opt/ultraesb-x/conf/projects/direct-proxy/default.properties.

To override the properties, you will have to use a volume mount. For example, if you have your own copy of the direct-proxy sample project on your host machine, at /home/malith/direct-proxy, you could simply mount its default property configuration file (src/main/conf/default.properties) into the UltraESB-X runtime, via:

docker run -it \ 
-v /home/malith/direct-proxy/src/main/conf:/opt/ultraesb-x/conf/projects/direct-proxy \
adroitlogic/ultraesb-x-complete:17.07.2 -sample direct-proxy

Alternatively you could create your own default.properties file somewhere on the host machine, and mount it under /opt/ultraesb-x/conf/projects/direct-proxy/, similar to what we have done above.

For example, the following properties are available for the direct-proxy sample project.

  • direct-proxy-flow.egress-connector.host
    The Hostname of the back-end server (default value is localhost)

Refer to Managing Project Properties documentation for further details on how to override properties.

You might also want to use the -p option of Docker to map the container ports to the ports of the host machine.

For example, since the direct-proxy project listens for messages on port 8280, we also have to map port 8280 of the container to some port (say 9002) of the host machine (using -p) so we can send messages to our project from the host machine:

docker run -it \
-p 9002:8280 \
-v /home/malith/direct-proxy/src/main/conf:/opt/ultraesb-x/conf/projects/direct-proxy \
adroitlogic/ultraesb-x-complete:17.07.2 -sample direct-proxy

And you now have your own Docker-powered UltraESB-X instance, loaded with a fully configured direct proxy, ready for action!

Enjoy!

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store