Public | Automated Build

Last pushed: 3 days ago
Short Description
EEA Plone KGS Docker Image
Full Description

EEA Plone KGS w/ EEA Add-ons ready to run Docker image

Docker image for Plone with EEA Common Add-ons available based on
EEA Common Plone Buildout (KGS)

This image is generic, thus you can obviously re-use it within
your non-related EEA projects.

Supported tags and respective Dockerfile links

These tags have nothing to do with Plone version. They refer to the
EEA KGS versions.
The used Plone version can be found within Dockerfile used to create this image.

Base docker image

Source code


  1. Install Docker
  2. Install Docker Compose (optional)


  • Python 2.7.12
  • Plone 4.3.10
  • Zope 2.13.24

Simple Usage

$ docker run -p 8080:8080 eeacms/kgs

Now, ask for http://localhost:8080/ in your workstation web browser and add a Plone site (default credentials admin:admin).

See more at plone

Advanced usage (ZEO, RelStorage, etc.)

Start ZEO server:

$ docker run -d --name=zeo \
             -e ZOPE_MODE=zeoserver \

Start 2 Plone clients:

$ docker run -d --name=zclient1 \
             -e ZOPE_MODE=zeo_client \
             --link=zeo:zeoserver \

$ docker run -d --name=zclient2 \
             -e ZOPE_MODE=zeo_client \
             --link=zeo:zeoserver \

Start load balancer:

$ docker run -d --name=lb \
             -p 8080:5000 \
             -p 1936:1936 \
             --link=zclient1 \
             --link=zclient2 \
             -e BACKENDS="zclient1 zclient2" \
             -e BACKENDS_PORT=8080 \
             -e DNS_ENABLED=true \

Check load-balancer back-ends health at http://localhost:1936/ (default credentials admin:admin).
If everything looks OK go to http://localhost:8080/ and add your Plone site.

See detailed ZEO client examples.

Also you can run this image as:

Extending this image

For this you'll have to provide the following custom files:

  • buildout.cfg
  • Dockerfile

Below is an example of buildout.cfg and Dockerfile to build a custom version
of Plone with your custom versions of packages based on EEA KGS image:


extends = eea.cfg

auto-checkout =

eggs +=

land.copernicus.theme = git
land.copernicus.content = git


FROM eeacms/kgs:8.4

COPY buildout.cfg /plone/instance/
RUN buildout

and then run

$ docker build -t plone-land-copernicus .

Persist/Migrate data


$ docker pull eeacms/kgs

Supported environment variables

  • ZOPE_MODE Can be zeoserver, standalone, zeo_client, zeo_async, rel_client, rel_async. Default standalone
  • ZOPE_THREADS Configure zserver-threads. Default 2 (e.g.: ZOPE_THREADS=4)
  • ZOPE_FAST_LISTEN Set to off to defer opening of the HTTP socket until the end of the Zope startup phase. Defaults to off (e.g.: ZOPE_FAST_LISTEN=on)
  • ZOPE_FORCE_CONNECTION_CLOSE Set to on to enforce Zope to set Connection: close header. Default on (e.g.: ZOPE_FORCE_CONNECTION_CLOSE=off)
  • GRAYLOG Configure zope inside container to send logs to GrayLog. Default (e.g.:
  • GRAYLOG_FACILITY Custom GrayLog facility. Default eea.docker.kgs (e.g.:
  • RELSTORAGE_KEEP_HISTORY history-preserving database schema, true by default (e.g.: RELSTORAGE_KEEP_HISTORY=false)

Release new versions of this image

Get source code

$ git clone

Update KGS_VERSION env within Dockerfile

$ cd eea.docker.kgs
$ vim Dockerfile

Commit changes

$ git commit -am "Release 19.5"

Create tag

$ git tag 19.5

Push changes

$ git push --tags
$ git push

Copyright and license

The Initial Owner of the Original Code is European Environment Agency (EEA).
All Rights Reserved.

The Original Code is free software;
you can redistribute it and/or modify it under the terms of the GNU
General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later


European Environment Agency (EU)

Docker Pull Command
Source Repository

Comments (0)