Docker-Compose Examples documentation for the dotCMS Content Management System

The dotCMS Docker examples are implemented using docker-compose (which is also compatible with Docker Swarm).

  • However these examples can all be run in any Linux Docker compatible orchestrator.
  • Each reference implementation comes with a readme file that provides instructions on how to properly start and clean up the examples.

For more information on the examples, please see the sections below.

Why Docker-compose?

The containers provided by dotCMS can be run in any Linux Docker compatible orchestrator. We have chosen to provide our reference implementation using docker-compose files, which can be used by Docker Swarm as well as by docker-compose.

There are several reasons for chosing this file format:

  • The YAML file for docker-compose and Swarm is easy to understand, and is an effective way of communicating the needed configuration for services, volumes, and networks.
  • This format makes it easy for simple POCs and for developers to use the entire stack locally on their development machines.
  • It is easy to take the information from these examples to deploy these services in the orchestrator of your choice.

Examples

The following demo configurations are provided and maintained by dotCMS. To access the files, please click on the Demo Configuration name in the table below.

Demo ConfigurationContainers IncludedDescription and Notes
Clean StartupdotCMS, Elasticsearch (Open Distro) and PostgresQL
  • Comes with no preloaded data (without the full dotCMS starter site).
  • Demonstrates how the dotCMS provided containers can be configured to function together in a simple demo configuration.
Demo Data StartupdotCMS, Elasticsearch (Open Distro) and PostgresQL
  • Includes the dotCMS starter site (sample content and data matching that provided on the dotCMS Demo Site).
  • Demonstrates how the dotCMS provided Docker containers can be configured to function together with a preloaded starter site.
Scaleable ConfigurationdotCMS, HAProxy, Elasticsearch (Open Distro), and PostgresQL
  • Demonstrates how dotCMS can be scaled up behind a load balancer configured to function together on a single host node.
  • Uses internal caching only (no external Hazelcast node) and a single external ElasticSearch node.
Full StackdotCMS, PostgresQL, Hazelcast and Elasticsearch
  • Demonstrates how the dotCMS provided containers can be configured to function together on a single host node.
  • Uses internal caching only (no external Hazelcast node) and a single external ElasticSearch node.

Kubernetes Demo

You can find a complete multinode Kubernetes Demo available on Github. This example comes with scripts that will automatically spin up a three node Kubernetes cluster in Google Cloud Platform and deploy the entire dotCMS stack to the cluster.

While you may not be interested in the scripts for auto deployment, you should be able to use the deployment.yaml file without modification. You just need to provision Persistent volumes as seen in the prereq_template.yaml file.

The one other prerequisite that the prereq_template.yaml file takes care of is setting up a DaemonSet to ensure that the host nodes are configured properly for the ElasticSearch containers.

Important Implementation Details

The Reference implementations make use of the following open-source technologies to implement and manage the images: