1 Gentics CMS Docker Compose Stack
Please use the Gentics CMS Docker Compose Stack provided at https://github.com/gentics/cms-compose for running Gentics CMS.
2 Example usage
when not using the Gentics CMS Docker Compose Stack
docker network create genticscms docker run -d --name db --net genticscms -e MYSQL_RANDOM_ROOT_PASSWORD=true -e MYSQL_DATABASE=node_utf8 -e MYSQL_USER=node -e MYSQL_PASSWORD=node mariadb:10.3 --sql-mode="" docker run -d -p 8080:80 --net genticscms --name cms -e NODE_DB_HOST=db docker.gentics.com/gentics/cms:5.33
3 Configuration
3.1 Environment variables
Variable | Default | Description |
---|---|---|
CONFIG_ACCESS_SUBNET | 127.0.0.0/8 | The network allowed to fetch the config via /.Node/?do=24 |
ADD_JAVA_OPTS | Additional java options | |
JAVA_XMS | 1024m | Initial JVM memory allocation pool |
JAVA_XMX | 1024m | Maximum JVM memory allocation pool |
JAVA_GC_OPTS | -XX:PrintGC | JVM GC settings |
LICENSEKEY | 1111-1111-1111-1111-1111-1111-1111-1111 | GCMS License key |
LICENSEKEY_PATH | /Node/etc/tomcat/gentics/license.key | Path to license key file in the container |
PRIVATEKEY_PATH | /Node/etc/tomcat/gentics/private-key.jwk | Path to the private key of the CMS in the container |
NODE_DB_HOST | localhost | MySQL host |
NODE_DB_PORT | 3306 | MySQL port |
NODE_DB_USER | node | MySQL user |
NODE_DB_PASSWORD | node | MySQL password |
NODE_DB | node_utf8 | MySQL database name |
NODE_DB_CONNECT_TIMEOUT | 60 | Time in seconds to wait for the database to be reachable before exiting with an error |
NODE_USER_PASSWORD | Password to set for the node CMS user | |
APACHE_PORT | 80 | Port of the internal Apache Http server |
APACHE_LOG_PREFIX | Optional prefix for log lines of the internal Apache Http Server | |
CN_EXTERNAL_SERVER | Optional base URL for accessing the CMS. Needed for correctly generating download URLs for form data exports (e.g. https://cms.domain.com ) |
3.2 Volumes
Volume path | Description |
---|---|
/Node/node | Binary database files and files that should be persisted, should be mount as named Docker volume |
4 Kubernetes / Openshift
The CMS docker image can also be used with a Kubernetes or Openshift pod. Running the container with a random user ID and group ID 0 is supported (Openshift policies support). All folders that should be writable are owned by the group ID 0 and are group writable.
Note: It might be necessary to configure the port of the internal Apache Http Server to a non-privileged port (e.g. 8080) by using the environment variable APACHE_PORT when running the container in Openshift.
5 Updating
Updating to a newer version normally doesn't require any special actions besides changing the image tag.
5.1 From 5.35.x to 5.36.x
When updating from a version older than 5.36.x, you have to consider the following things:
- The group for writable folders has changed to 0 (root) in order to support Openshift.
- sudo has been removed. Please change any custom scripts or scheduler tasks to not use sudo anymore.
- cron has been replaced by the more container friendly "supercronic"
- All processes are running with the "node" user now. Apache 2 was previously executed with the "www-data" user.
- The container can be run with any User ID for the "node" user now (Openshift support)
If the container runs with a different User ID after updating, please run the following commands:
<shell> chown -R 1000:0 /Node/node chmod -R urwX,g+rwX,o-w /Node/node
If you also have mounted other volumes than /Node/node (e.g.: /var/log/, …), the above also has to be done for these.