Plone 5 (Python 3) with built-in support for:
- RelStorage
- RestAPI
- LDAP
- Memcached
- zc.async
- Graylog
- Sentry
- Faceted Navigation
This image is generic, thus you can obviously re-use it within your own projects.
github.com:eea/eea.docker.plone/releases
hub.docker.com:eeacms/plone
github.com:eea/eea.docker.plone
$ docker run -it --rm -p 80:8080 -e SITE=api eeacms/plone
$ curl -i http://localhost/api -H 'Accept: application/json'
$ docker-compose up -d
$ ZOPE_MODE=rel_client docker-compose up -d
$ IMAGE=eeacms/plone:5.1.x ZOPE_MODE=rel_client docker-compose up -d
You can also dump the environment variables to .env file and run docker-compose as usual:
$ cp .env.example .env
$ vim .env
$ docker-compose up -d
Now, ask for http://localhost:8080/ in your workstation web browser and add a Plone site (default credentials admin:admin).
See docker-compose.yml for more details and more about Plone at plone
For this you'll have to provide the following custom files:
site.cfgDockerfile
Below is an example of site.cfg and Dockerfile to build a custom version of Plone with some add-ons based on this image:
site.cfg:
[buildout]
extends = buildout.cfg
[configuration]
eggs +=
eea.facetednavigation
collective.elasticsearch
collective.taxonomy
[versions]
eea.facetednavigation = 11.7
collective.elasticsearch = 3.0.2
collective.taxonomy = 3.1
Dockerfile:
FROM eeacms/plone
COPY site.cfg /plone/instance/
RUN gosu plone buildout -c site.cfg
and then run
$ docker build -t plone-rulez .
ZOPE_MODECan bestandalone,zeo_client,zeo_async,rel_client,rel_async. DefaultstandaloneZOPE_THREADSConfigure zserver-threads. Default2(e.g.:ZOPE_THREADS=4)ZOPE_FAST_LISTENSet tooffto defer opening of the HTTP socket until the end of the Zope startup phase. Defaults tooff(e.g.:ZOPE_FAST_LISTEN=on)ZOPE_FORCE_CONNECTION_CLOSESet toonto enforce Zope to setConnection: close header. Defaulton(e.g.:ZOPE_FORCE_CONNECTION_CLOSE=off)
RELSTORAGE_HOSTCustom PostgreSQL address,postgresby default (e.g.:RELSTORAGE_HOST=1.2.3.4)RELSTORAGE_USERCustom PostgreSQL user,zopeby default (e.g.:RELSTORAGE_USER=plone)RELSTORAGE_PASSCustom PostgreSQL password,zopeby default (e.g.:RELSTORAGE_PASS=secret)RELSTORAGE_KEEP_HISTORYhistory-preserving database schema,falseby default (e.g.:RELSTORAGE_KEEP_HISTORY=true)
GRAYLOGConfigure zope inside container to send logs to Graylog. Defaultlogcentral.eea.europa.eu:12201(e.g.:GRAYLOG=logs.example.com:12201)GRAYLOG_FACILITYCustom GrayLog facility. Defaulteea.docker.plone(e.g.:GRAYLOG_FACILITY=staging.example.com)
SENTRY_DSNSend python tracebacks to sentry.io or your custom Sentry installation (e.g.: SENTRY_DSN=https://<public_key>:<secret_key>@sentry.example.com)SENTRY_SITE,SERVER_NAMEAdd site tag to Sentry logs (e.g.:SENTRY_SITE=foo.example.com)SENTRY_RELEASEAdd release tag to Sentry logs (e.g.:SENTRY_RELEASE=5.1.5-34)SENTRY_ENVIRONMENTAdd environment tag to Sentry logs. Leave empty to automatically get it fromrancher-metadata(e.g.:SENTRY_ENVIRONMENT=staging)
See also Plone Supported Environment Variables
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 version.