Deploying Corticon with Docker

Deploying Corticon with Docker

April 20, 2016 0 Comments
Deploying Corticon with Docker

Flexible deployment has always been a mainstay of Progress Corticon. We’ve now taken this further by making the Corticon Server available on DockerHub. This makes it easy for you to deploy your Corticon rules as services in Docker containers.

What Is Docker

Docker is a technology that allows the deployment of applications, with all their dependencies, inside software containers. It’s about making it simple and easy to create, deploy and run applications using containers. Since the container packages up the applications with all the libraries and dependencies, the developer can rest assured that the application can run on any Docker host regardless of the environment.

In a way, Docker can be considered as a virtual machine. But unlike a virtual machine, rather than creating a whole virtual operating system, Docker allows applications to use the same Linux kernel as the system and only requires applications be shipped with things not already running on the host machine. It provides a resource isolated abstraction layer that allows independent containers to run on a single OS (host) instance. This avoids the overhead of starting and maintaining virtual machines.

Docker and other containers (LXC, libvirt, Zones, etc..) have similar resource isolation and allocation benefits as virtual machines, but the architectural approach allows them to be more portable and efficient.

Virtual Machines


Virtual Machines


The containers eliminate the need for a Guest OS. The containers run an application as an isolated process in the userspace and share an OS kernel with other containers.  This allows the Docker containers to spin up and down in seconds, allowing you to scale and satisfy the current customer demand. When using VMs you tend to spin up instances fast and scale them down slow because of the VM startup latency.

Corticon on Docker

Corticon Server can be deployed as a J2EE web application and the rules deployed to it accessed as a REST or a SOAP service. An image of the Corticon Server in Tomcat is now available on Docker Hub. The Corticon Server base image uses Java Runtime (JDK), Tomcat-7 (Tomcat image provided by the Apache’s Tomcat team) and the Corticon Server Web application (axis.war). 

The Corticon Docker Hub repository has the latest version of Corticon as well as versions previously released. The versions are tagged such that you can pick a specific version of Corticon to use, the latest hotfix within a release, or the latest overall. This makes it easy to configure your Corticon deployments to use the version which best fits your needs. It is very easy to build and run a version of Corticon Server by selecting an image on Docker Hub.

Steps to Build a Corticon Server Image Using Docker Hub

  • Create a DockerFile
  • A DockerFile always begins with the FROM statement. It specifies the base image that is to be used for this image. The FROM corticon/docker line specifies that this image should be derived from the latest corticon/docker image that is published on DockerHub. To use a different version simply change the FROM statement to add the tag of your choice. For example, FROM corticon/docker:5.5.2 will derive the image from the 5.5.2 version on  DockerHub.
  • Now you need to add your Corticon license file. Copy the license file to the CORTICON WORK folder in the Docker image: ADD CcLicense.jar /opt/corticon/work/
  • The next step is to simply copy the decision service .eds and .cdd file to the CDD directory: 
    ADD Order.eds /opt/corticon/work/cdd/
    ADD DecisionServices.cdd /opt/corticon/work/cdd/

To build your Docker image you just run docker build:

$ docker build  –t  corticon

Once you have the Corticon image in your local repository, you can deploy the image using a docker run command:

$ docker run –p 8080:8080 corticon

That’s all that is needed to build a Corticon Server image using the Docker Hub. You can refer to the Corticon Docker Hub account for more advanced settings and information.

Benefits of Deploying with Docker

Using the Corticon Server image from Docker Hub makes it very easy to setup a Corticon deployment. Using the latest tag you can also make sure that your Corticon deployments are running with the latest hotfix for a release.

Using the Docker for your Corticon deployments frees you from having to configure Corticon for different environments, increases flexibility, and potentially reduces the number of systems needed because of its small footprint and lower overhead.

Starting new Corticon images in Docker takes just a few seconds. This is due to the fact that it creates a container for every process and does not boot an OS. It is also trivial to switch between different versions of the Corticon Server image for testing purposes by merely building and running an image using a different tag (Corticon Server version). Different versions of a Corticon Server image can be created and destroyed without worrying that bringing it up again would be too costly.


Suvasri Mandal

Suvasri Mandal is a Principal Software Engineer at Progress. She is responsible for design, development, testing and support of Corticon BRMS. She has background in the areas of Business Rules and Complex Event Processing. 

Comments are disabled in preview mode.
Latest Stories
in Your Inbox

Subscribe to get all the news, info and tutorials you need to build better business apps and sites

Sitefinity Training and Certification Now Available.

Let our experts teach you how to use Sitefinity's best-in-class features to deliver compelling digital experiences.

Learn More
More From Progress
ResourceImage_570x321 RITM0091321
Run Business Rules Where Decisions Are Made with Corticon.js
Read More
Supercharge the Velocity of Your .NET Business Rules with Corticon 6
Read More
570x321__Top 7 Considerations Before Choosing a Chatbot for Your Enterprise
Top 7 Considerations Before Choosing a Chatbot for Your Enterprise
Read More