Docker-Compose Examples

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.
All Compose ExamplesPush Publishing, Kibana, Redis, MsSQL, and others
  • Examples of other dotCMS configurations and features.

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: