Conquering UltraESB-X with Docker

Let’s face it. Every once in awhile you come across a great product. But the struggle that you have to go through to set it up, is a major turn-off. Installing and setting up UltraESB-X might seem to be a daunting task at first. We at AdroitLogic have also been aware of the problem and finally, have come up with a solution. Yes. You’ve correctly guessed it. It’s a Docker image.

To continue with the guide, all you need is a working Docker installation which, thanks to its recent advancements and widespread adoption, is no longer a luxury item. Maybe your own computer, a dev system at your workplace, a virtual machine, or even an EC2 instance.

Once Docker is in place, getting your first UltraESB-X instance up and running is just as simple as:

docker run \ -e CLIENTKEY=your-client-key-here \ adroitlogic/ultraesb-x:17.07.1

Since UltraESB-X is a proprietary product, you’ll have to obtain a client key in order to try it out. Just ask us for a key, and we’ll email you one that can run an unlimited number of Docker-based UltraESB-X instances.

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

docker run -it \ -e CLIENTKEY=your-client-key-here \ adroitlogic/ultraesb-x:17.07.1

However, running an UltraESB distribution without a project does not make much sense. Luckily, adding a project is as easy as a simple volume mount:

docker run -it \ -e CLIENTKEY=your-client-key-here \ -v /home/malith/sample-project/target:/opt/ultraesb-x/projects \ -p 9002:5400 \ adroitlogic/ultraesb-x:17.07.1

We have mounted the target directory of our sample-project, overlaying the projects directory of the UltraESB-X bundle inside the Docker image. Since the project listens for messages on port 5400, we also mapped port 9002 of the host machine to port 5400 of the container (using -p) so we can send messages to our project from the outside.

Want to run multiple projects? Piece of cake:

docker run -it \ -e CLIENTKEY=your-client-key-here \ -v /path/to/project1.xpr:/opt/ultraesb-x/projects/project1.xpr \ -p 9002:5400 \ -v /path/to/project2.xpr:/opt/ultraesb-x/projects/project2.xpr \ -p 9003:5401 \ adroitlogic/ultraesb-x:17.07.1

If you need to get a sample project set up quickly, simply visit our samples page and grab your favourite.

Enjoy!