Docker documentation for the dotCMS Content Management System

dotCMS releases and maintains dotCMS Docker containers that can be used as a foundation for hosting a scalable dotCMS installation. Many dotCMS customers are currently using Docker containers for production deployments, using both the official dotCMS Docker containers or customized Docker containers.

The dotCMS-provided container is intended to be used the foundation for your Docker deployments and offer a range of configurable parameters to meet most use cases. All dotCMS web properties run on the official Docker container, including our primary (production) site, our authoring environments, and the dotCMS Demo site.

Prerequisites

You will need the following things to run dotCMS within Docker:

  • A Docker compatible Linux container hosting environment.
    • For development purposes, you may use the official dotCMS Docker images with “Docker for Mac” or “Docker Desktop” for Windows.
      • Note: When using Docker Desktop for Windows, you must ensure that Docker is configured to use Linux images, rather than Windows images.
    • However for supported, production environments a Linux host environment is required.
  • Sufficient Memory
    • If you are running locally, please make sure you have the recommended amount of memory allocated to Docker.
    • dotCMS recommends a minimum of 8 GB of memory for a fully dockerized environment, e.g. dotCMS, elasticsearch and database.
      • This is the minimum required for development and demonstration; live authoring and especially production environments will likely require more memory than this.
  • A recent Docker version
    • If you are using Docker the recommended versions are:
      • docker: 18.03.1 (or later)
      • docker-compose 1.18.0 (or later)
  • Elasticsearch Settings
    • For nodes that will be hosting ElasticSearch containers, please make sure to set the vm.max_map_count property as described in the Elasticsearch documentation.

Images

The dotCMS docker image is publicly available on Docker hub.

  • For all images, the tag :latest points to the last released version.
Image NameDescriptionNotes
dotCMSThe main dotCMS image.
  • Can be used as a standalone demo or configured to use a containerized database or a production ready database server.
  • When used by itself without a plugin, it is essentially the same as pulling down the tar/zip file of the release, uncompressing release, and running it.

Hosting and Orchestration

dotCMS requires a Docker compatible container hosting environment. However you are not limited in how you deploy your containers, and you are free to use the orchestrator of your choice (e.g. Kubernetes, Openshift, Docker Enterprise, Amazon ECS, Apache Mesos, Marathon, Docker Swarm, etc).

Configuration and Plugins

The dotCMS Docker containers have been designed to allow you to configure dotCMS without the need to modify the Docker images, via both configurations and dynamic plugins.

MethodDescriptionAdditional Information
ConfigurationMany configuration options are available without the need for a configuration plugin.
  • Please see the Docker image documentation to see what options are available. Additionally, most dotCMS configuration variables can be overriden by the use of environmental variables. See changing configuration properties for more information
OSGI PluginsWith a Docker image, you can load and manage OSGI plugins the same way as you would with any other dotCMS distribution.
  • Please see the [OSGI Plugins] documentation for more information.
Static PluginsNote: Deploying static plugins in a dockerized environment has been deprecated and support will be removed in a future version.
  • Map your plugins directory into “/plugins/static” in the Docker image, and the image will automatically find and deploy the plugins.
  • Please see the Docker Reference Implementation documentation for an example of how this is done.