/exo-community

eXo Platform Community edition in a Docker container (use eXo Tribe website forum to ask questions or report problems)

Primary LanguageShell

eXo Platform Community Docker image

Docker Stars Docker Pulls

The eXo Platform Community edition Docker image support HSQLDB (for testing) and MySQL (for production).

Image JDK eXo Platform
exoplatform/exo-community:6.5 17 6.5 Community edition
exoplatform/exo-community:6.4 17 6.4 Community edition
exoplatform/exo-community:6.3 11 6.3 Community edition
exoplatform/exo-community:5.3 8 5.3 Community edition
exoplatform/exo-community:5.2 8 5.2 Community edition
exoplatform/exo-community:5.1 8 5.1 Community edition
exoplatform/exo-community:5.0 8 5.0 Community edition
exoplatform/exo-community:4.4 8 4.4 Community edition
exoplatform/exo-community:4.3 8 4.3 Community edition
exoplatform/exo-community:4.2 7 4.2 Community edition
exoplatform/exo-community:4.1 7 4.1 Community edition

The image is compatible with the following databases system : MySQL (default) / HSQLDB / PostgreSQL

Quick start

Easy way : with docker-compose

Follow the quick start guide

Advanced way : with docker images

Follow the advanced guide

Configuration options

Configuration options are available here

How-to

configure eXo Platform behind a reverse-proxy

You have to specify the following environment variables to configure eXo Platform (see upper section for more parameters and details) :

docker run -d \
  -p 8080:8080 \
  -e EXO_PROXY_VHOST="my.public-facing-hostname.org" \
  exoplatform/exo-community

You can also use Docker Compose (see the provided docker-compose.yml file as an example).

use MySQL database

You have to specify the following environment variables to point to an external MySQL database server (see upper section for more parameters and details) :

docker run -d \
  -p 8080:8080 \
  -e EXO_DB_TYPE="mysql" \
  -e EXO_DB_HOST="mysql.server-hostname.org" \
  -e EXO_DB_USER="exo" \
  -e EXO_DB_PASSWORD="my-secret-pw" \
  exoplatform/exo-community

You can also use Docker Compose (see the provided docker-compose.yml file as an example).

see eXo Platform logs

docker logs --follow <CONTAINER_NAME>

install eXo Platform add-ons

To install add-ons in the container, provide a commas separated list of add-ons you want to install in a EXO_ADDONS_LIST environment variable to the container:

docker run -d \
  -p 8080:8080 \
  -e EXO_ADDONS_LIST="exo-tasks:3.4.x-SNAPSHOT" \
  exoplatform/exo-community

INFO: the provided add-ons list will be installed in the container during the container creation.

list eXo Platform add-ons available

In a running container execute the following command:

docker exec <CONTAINER_NAME> /opt/exo/addon list

list eXo Platform add-ons installed

In a running container execute the following command:

docker exec <CONTAINER_NAME> /opt/exo/addon list --installed

customize some eXo Platform settings

All previously mentioned environment variables can be defined in a standard Docker way with -e ENV_VARIABLE="value" parameters :

docker run -d \
  -p 8080:8080 \
  -e EXO_JVM_SIZE_MAX="8g" \
  exoplatform/exo-community

Some eXo configuration properties can also be defined in an exo.properties file (starting from exoplatform/exo-community:5.1 version). In this case, just create this file and bind mount it in the Docker container :

docker run -d \
  -p 8080:8080 \
  -v /absolute/path/to/exo.properties:/etc/exo/exo.properties:ro \
  exoplatform/exo-community

Image build

The simplest way to build this image is to use default values :

docker build -t exoplatform/exo-community .

This will produce an image with the current eXo Platform Community edition.

The build can be customized with the following arguments :

ARGUMENT NAME MANDATORY DEFAULT VALUE DESCRIPTION
ADDONS NO exo-chat exo-tasks:1.1.0 exo-jdbc-driver-mysql:1.1.0 a space separated list of add-ons to install (default: exo-jdbc-driver-mysql:1.1.0)

Image Signature

:octocat: ghcr.io Docker image signature

Starting with eXo Community 6.3 from the github container registry, eXo Community docker images will be signed with [cosign] (https://github.com/sigstore/cosign) tool.

In order to verify the signature of the eXo Community docker image, please install the "cosign" command line tool. Then please follow these instructions:

  • Save the following public key to cosign.pub file:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgYKR7SoWbXjHya1Bc2Ih3kX8wv8w
Y7StaVsRXzbcIL0jECiKzKarPxQQ69uVmZ6c0JEVQhBeN9w3pr75D4o2/A==
-----END PUBLIC KEY-----
  • Execute the following command:
cosign verify --key cosign.pub ghcr.io/exo-docker/exo-community:<tag>

Example:

cosign verify --key cosign.pub ghcr.io/exo-docker/exo-community:6.4

Output:

[{"critical":{"identity":{"docker-reference":"ghcr.io/exo-docker/exo-community"},"image":{"docker-manifest-digest":"sha256:906afd0b16900e9ba...."},"type":"cosign container image signature"},"optional":{"Bundle":{"SignedEntryTimestamp":"MEQCIGtU3...","Payload":{"body":"eyJhcGlWZX....","integratedTime":1689844562,"logIndex":28114552,"logID":"c0d23d6..."}}}}]