exoplatform/exo

By exoplatform

Updated about 1 hour ago

eXo Platform inside a Docker container.

Image
Integration & Delivery
Web Servers
7

100K+

eXo Platform Docker image

Docker Stars - Docker Pulls

ImageJDKeXo Platform
exoplatform/exo:7.0_latest177.0.x Enterprise edition
exoplatform/exo:6.5_latest176.5.x Enterprise edition
exoplatform/exo:6.4_latest176.4.x Enterprise edition
exoplatform/exo:6.3_latest116.3.x Enterprise edition
exoplatform/exo:6.2_latest116.2.x Enterprise edition
exoplatform/exo:6.1_latest116.1.x Enterprise edition
exoplatform/exo:6.0_latest116.0.x Enterprise edition
exoplatform/exo:5.3_latest85.3.x Enterprise edition
exoplatform/exo:5.2_latest (changelog)85.2.x Enterprise edition
exoplatform/exo:5.1_latest (changelog)85.1.x Enterprise edition
exoplatform/exo:5.0_latest (changelog)85.0.x Enterprise edition
exoplatform/exo:4.4_latest (changelog)84.4.x Enterprise edition
exoplatform/exo:4.3_latest84.3.x Enterprise edition

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

Configuration options

All the following options can be defined with standard Docker -e parameter

docker run -e MY_ENV_VARIABLE="value" ... exoplatform/exo

or Docker Compose way of defining environment variables

version: '2'
services:
...
  exo:
    image: exoplatform/exo
    environment:
...
      EXO_ADDONS_LIST: exo-chat
      EXO_PATCHES_LIST:
      EXO_PATCHES_CATALOG_URL:
      EXO_ES_HOST: search
...
Add-ons

Some add-ons are already installed in eXo image but you can install other one or remove some of the pre-installed one :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_ADDONS_LISTNO-commas separated list of add-ons to install (ex: exo-answers,exo-skype:1.0.x-SNAPSHOT)
EXO_ADDONS_REMOVE_LISTNO-commas separated list of add-ons to uninstall (ex: exo-chat) (since: 4.4.2_3)
EXO_ADDONS_CATALOG_URLNO-The url of a valid eXo Catalog
EXO_ADDONS_CONFLICT_MODENO-decision to make in case of file conflicts (overwrite, ignore or fail)
EXO_ADDONS_NOCOMPAT_MODENOfalsedecision to allow to install incompatible addon
EXO_ADDONS_INSTALL_TIMEOUTNO120timeout to install an addon (in seconds)
Patches

Patches can be deployed in eXo image :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_PATCHES_LISTNO-commas separated list of patches to install (ex: patch-4.4.4:1,patch-4.4.4:2)
EXO_PATCHES_CATALOG_URLYES-The url of a valid eXo Patches Catalog (mandatory if something is specified in EXO_PATCHES_LIST)
JVM

The standard eXo Platform environment variables can be used :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_JVM_SIZE_MINNO512mspecify the jvm minimum allocated memory size (-Xms parameter)
EXO_JVM_SIZE_MAXNO3gspecify the jvm maximum allocated memory size (-Xmx parameter)
EXO_JVM_PERMSIZE_MAXNO256m(Java 7) specify the jvm maximum allocated memory to Permgen (-XX:MaxPermSize parameter)
EXO_JVM_METASPACE_SIZE_MAXNO512m(Java 8+) specify the jvm maximum allocated memory to MetaSpace (-XX:MaxMetaspaceSize parameter)
EXO_JVM_USER_LANGUAGENOenspecify the jvm locale for langage (-Duser.language parameter)
EXO_JVM_USER_REGIONNOUSspecify the jvm local for region (-Duser.region parameter)
EXO_JVM_LOG_GC_ENABLEDNOfalseactivate the JVM GC log file generation (location: $EXO_LOG_DIR/platform-gc.log)

INFO: This list is not exhaustive (see eXo Platform documentation or {EXO_HOME}/bin/setenv.sh for more parameters)

Frontend proxy

The following environment variables must be passed to the container to configure Tomcat proxy settings:

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_PROXY_VHOSTNOlocalhostspecify the virtual host name to reach eXo Platform
EXO_PROXY_PORTNO-which port to use on the proxy server ? (if empty it will automatically defined regarding EXO_PROXY_SSL value : true => 443 / false => 80)
EXO_PROXY_SSLNOtrueis ssl activated on the proxy server ? (true / false)
Tomcat

The following environment variables can be passed to the container to configure Tomcat settings

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_HTTP_THREAD_MAXNO200maximum number of threads in the tomcat http connector
EXO_HTTP_THREAD_MINNO10minimum number of threads ready in the tomcat http connector
EXO_ACCESS_LOG_ENABLEDNOfalseactivate Tomcat access log with combine format and a daily log file rotation
EXO_GZIP_ENABLEDNOtrueactivate Tomcat Gzip compression for assets mimetypes
EXO_CONNECTION_TIMEOUTNO20000Tomcat Connection timeout
EXO_SESSION_TIMEOUTNO30Tomcat session timeout (minutes)

Valves and Listeners

A file containing the list of valves and listeners can be attached to the container in the path {{/etc/exo/host.yml}}. If a file is specified, the default valves and listeners configuration will be overridden.

The file format is :

components:
  - type: Valve
    className: org.acme.myvalves.WithoutAttributes
  - type: Valve
    className: org.acme.myvalves.WithAttributes
    attributes:
      - name: param1
        value: value1
      - name: param2
        value: value2
  - type: Listener
    className: org.acme.mylistener.WthAttributes
    attributes:
      - name: param1
        value: value1
      - name: param2
        value: value2
Data on disk

The following environment variables must be passed to the container in order to work :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_DATA_DIRNO/srv/exothe directory to store eXo Platform data
EXO_JCR_STORAGE_DIRNO${EXO_DATA_DIR}/jcr/valuesthe directory to store eXo Platform JCR values data
EXO_JCR_FS_STORAGE_ENABLEDNODefault value of eXo ServerWhether to store JCR Binary files in RDBMS or File system. Possible values: true (=FS) OR false (=DB)
EXO_FILE_STORAGE_DIRNO${EXO_DATA_DIR}/filesthe directory to store eXo Platform data
EXO_FILE_STORAGE_TYPENODefault value of eXo ServerWhether to store Files API Binary files in RDBMS or File system. Possible values: rdbms OR fs
EXO_FILE_STORAGE_RETENTIONNO30the number of days to keep deleted files on disk before definitively remove it from the disk
EXO_UPLOAD_MAX_FILE_SIZENO200maximum authorized size for file upload in MB.
EXO_FILE_UMASKNO0022the umask used for files generated by eXo
Database

The following environment variables must be passed to the container in order to work :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_DB_TYPENOmysqlmysql / hsqldb / pgsql / ora
EXO_DB_HOSTNOmysqlthe host to connect to the database server
EXO_DB_PORTNO3306the port to connect to the database server
EXO_DB_NAMENOexothe name of the database / schema to use
EXO_DB_USERNOexothe username to connect to the database
EXO_DB_PASSWORDYES-the password to connect to the database
EXO_DB_POOL_IDM_INIT_SIZENO5the init size of IDM datasource pool
EXO_DB_POOL_IDM_MAX_SIZENO20the max size of IDM datasource pool
EXO_DB_POOL_JCR_INIT_SIZENO5the init size of JCR datasource pool
EXO_DB_POOL_JCR_MAX_SIZENO20the max size of JCR datasource pool
EXO_DB_POOL_JPA_INIT_SIZENO5the init size of JPA datasource pool
EXO_DB_POOL_JPA_MAX_SIZENO20the max size of JPA datasource pool
EXO_DB_TIMEOUTNO60the number of seconds to wait for database availability before cancelling eXo startup

MySQL

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_DB_MYSQL_USE_SSLNOfalseconnecting securely to MySQL using SSL (see MySQL Connector/J documentation for useSSL parameter)
eXo Chat

eXo Chat is available in 2 flavors :

  • embedded (default) : satisfy to most cases, the simplest to install and need only an external MongoDB instance.
  • standalone : if you want to separate eXo and Chat JVM (for high throughput performance or architecture concerns).

A switch is available to enable the standalone mode :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_CHAT_SERVER_STANDALONENOfalseare you using a standalone version of eXo Chat server

embedded

With eXo Chat embedded mode, the client and server part of the chat feature are installed in eXo container.

  • add-on to install : exo-chat:<VERSION>

The following environment variables should be passed to eXo container to configure eXo Chat :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_MONGO_HOSTNOmongothe hostname to connect to the mongodb database for eXo Chat
EXO_MONGO_PORTNO27017the port to connect to the mongodb server
EXO_MONGO_USERNAMENO-the username to use to connect to the mongodb database (no authentication configured by default)
EXO_MONGO_PASSWORDNO-the password to use to connect to the mongodb database (no authentication configured by default)
EXO_MONGO_DB_NAMENOchatthe mongodb database name to use for eXo Chat
EXO_MONGO_TIMEOUTNO60the number of seconds to wait for mongodb availability before cancelling eXo startup

INFO: an external MongoDB server should be installed

standalone

With eXo Chat standalone mode, only the client part of the chat feature is installed in eXo container. The server part must be installed separately in another container (doc).

The following environment variables should be passed to eXo container to configure eXo Chat client :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_CHAT_SERVER_URLNOhttp://localhost:8080the url of the eXo Chat server (only needed for eXo Chat standalone edition)
EXO_CHAT_SERVER_PASSPHRASENOsomething2changethe passphrase to secure the communication with eXo Chat standalone server (only used for eXo Chat standalone edition)
ElasticSearch

The following environment variables should be passed to the container in order to configure the search feature :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_ES_SCHEMENOhttpthe elasticsearch server scheme to use from the eXo Platform server jvm perspective (http / https).
EXO_ES_HOSTNOlocalhostthe elasticsearch server hostname to use from the eXo Platform server jvm perspective.
EXO_ES_PORTNO9200the elasticsearch server port to use from the eXo Platform server jvm perspective.
EXO_ES_USERNAMENO-the username to connect to the elasticsearch server (if authentication is activated on the external elasticsearch).
EXO_ES_PASSWORDNO-the password to connect to the elasticsearch server (if authentication is activated on the external elasticsearch).
EXO_ES_INDEX_REPLICA_NBNO0the number of replicat for elasticsearch indexes (leave 0 if you don't have an elasticsearch cluster).
EXO_ES_INDEX_SHARD_NBNO0the number of shard for elasticsearch indexes.
EXO_ES_TIMEOUTNO60the number of seconds to wait for elasticsearch availability before cancelling eXo startup
LDAP / Active Directory

The following environment variables should be passed to the container in order to configure the ldap connection pool :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_LDAP_POOL_DEBUGNO-the level of debug output to produce. Valid values are "fine" (trace connection creation and removal) and "all" (all debugging information).
EXO_LDAP_POOL_TIMEOUTNO60000the number of milliseconds that an idle connection may remain in the pool without being closed and removed from the pool.
EXO_LDAP_POOL_MAX_SIZENO100the maximum number of connections per connection identity that can be maintained concurrently.
Mail

The following environment variables should be passed to the container in order to configure the mail server configuration to use :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_MAIL_FROMNOnoreply@exoplatform.com"from" field of emails sent by eXo platform
EXO_MAIL_SMTP_HOSTNOlocalhostSMTP Server hostname
EXO_MAIL_SMTP_PORTNO25SMTP Server port
EXO_MAIL_SMTP_STARTTLSNOfalsetrue to enable the secure (TLS) SMTP. See RFC 3207.
EXO_MAIL_SMTP_USERNAMENO-authentication username for smtp server (if needed)
EXO_MAIL_SMTP_PASSWORDNO-authentication password for smtp server (if needed)
EXO_SMTP_SSL_ENABLEDNOfalsetrue to enable SSL connection
EXO_MAIL_SSL_SOCKETFACTORY_PORTNO${EXO_MAIL_SMTP_PORT}ssl socketfactory port (default smtp port)
EXO_SMTP_SSL_PROTOCOLSNO-tls version for smtp server (if needed)
JMX

The following environment variables should be passed to the container in order to configure JMX :

VARIABLEMANDATORYDEFAULT VALUEDESCRIPTION
EXO_JMX_ENABLEDNOtrueactivate JMX listener
EXO_JMX_RMI_REGISTRY_PORTNO10001JMX RMI Registry port
EXO_JMX_RMI_SERVER_PORTNO10002JMX RMI Server port
EXO_JMX_RMI_SERVER_HOSTNAMENOlocalhostJMX RMI Server hostname

Docker Pull Command

docker pull exoplatform/exo