Available images and prerequisites

October 8, 2024

Docker is the main container technology that helps to accelerate and standardize the deployment of thousands of applications. Jahia leverages Docker in its Cloud offering, and supports on-premise Docker installations, both for development and production purposes.

This topic helps to get you started with the Jahia and jCustomer Docker images and provides best practices for you to gain productivity and proficiency.

Prerequisites

Before using Docker, ensure that you have:

  • A basic understanding of containers
  • Administrator rights on the machine that will run Docker
  • Docker installed. You can download Docker here and follow install steps on the website

There is no need for Java or any other Jahia prerequisites as they are packaged in the Docker container. This highlights one of the advantages of containers.

Note: On Windows and MacOS, Docker is not run natively, and instead executes inside a Virtual Machine. The resources allocated to Docker (for example, RAM and CPU) depends on both your machine’s specifications on the virtual machine’s. They should be set according to your needs. For more information, see the Docker Desktop for Windows documentation or Docker Desktop for Mac documentation.
On both systems, at least 4GB of memory should be allocated to Docker to run Jahia, and 8GB to run the full Jahia, database, jCustomer and Elasticsearch suite.

Jahia Docker images

Starting with Jahia 8.0.3.0, our Docker repositories and images have been re-organized to improve the consistency and for better support of Jahia features.

ImagesTag exampleDescription
jahia/jahia-ee8.0.3.0Multi-purpose Jahia image, suited to running development and production workloads. 
jahia/jahia-discovery8.0.3.0Jahia image pre-installed with additional modules to facilitate development and discovery. The Jahia discovery image is built from the jahia/jahia-ee image and aims at facilitating the discovery Jahia. It comes with limitations.
jahia/jcustomer1.5.1Multi purpose jCustomer image, suited to running development and production workloads.

To pull an image from Docker Hub, copy and paste this command into your terminal:

docker pull jahia/jahia-ee:8.0.3.0

After executing the command, the image downloads and is available to be run right away.

Anatomy of a Docker image

For building its containers, Jahia is chaining its Docker build process, and while our previous images (jahia/jahiajahia/jahia-dev) were built from the Jahia installer, each with its own and independent lifecycle, the new images are built directly from our source code and are following the dependency tree detailed below.

It means that instructions applicable to an image (and in particular when it comes to environment variables) are going to be applicable to all other images deriving from that image. 

ImagesBase imageDockerfile

jahia/jahia-core (Dockerfile)

 

tomcat:9-jdk11-openjdk-slim-busterThis image contains Jahia core (the codebase available at https://github.com/Jahia/jahia). It is not usable on its own since it does not include any modules. Its main purpose is to serve as base image for further builds. Most of the logic around how Jahia images are built is located in its Dockerfile and logic around how Jahia images are running is located in its entrypoint script.
jahia/jahia-opencore (Dockerfile)jahia/jahia-coreBuild from Jahia core, this image contains all of the open-source modules needed for a minimal version of Jahia with a usable administration interface but without any of the enterprise features. Referred to as Jahia Open-Core, it serves as a base image for building our enterprise image.
jahia/jahia-eejahia/jahia-opencoreJahia enterprise image optimized for production use. It contains the most frequently used enterprise features (such as clustering). Additional modules can easily be added at runtime using the documented methods (module-manager API, provisioning API, filesystem or Jahia Administration). For example, the jahia/jahia-discovery image is built using jahia/jahia-ee as a base image.
jahia/jahia-discoveryjahia/jahia-eeBuilt from jahia/jahia-ee image, this image includes additional module that are not necessarily relevant for production use (such as Luxe demo website), making this image a good fit for developer use or for those willing to easily discover Jahia using docker.
jahia/jcustomeropenjdk:8This image is built from jCustomer codebase and is the primary image recommended for running jCustomer in production.

jCustomer images use a slightly different lifecycle in a sense that they don't derive from other distributions.

ImagesBase imageDockerfile
jahia/jcustomeropenjdk:8This image is built from jCustomer codebase and is the primary image recommended for production.