Plone is a free and open source content management system built on top of the Zope application server.
- Images for Plone 5.x and Plone 4.x
- Enable add-ons via environment variables
- Choose between Debian or Alpine based images
5.2.2-alpine
,5.2-alpine
,5-alpine
,alpine
(5.2.2/alpine/Dockerfile)5.2.2-python38
,5.2.2
,5.2
,5
,python38
,latest
(5.2.2/Dockerfile)5.2.2-python37
,5.2-python37
,5-python37
,python37
(5.2.2/python37/Dockerfile)5.2.2-python36
,5.2-python36
,5-python36
,python36
(5.2.2/python36/Dockerfile)5.2.2-python2
,5.2-python2
,5-python2
,python2
(5.2.2/python2/Dockerfile)5.1.6
,5.1
(5.1.6/Dockerfile)5.1.6-alpine
,5.1-alpine
(5.1.6/alpine/Dockerfile)4.3.19
,4.3
,4
(4.3.19/Dockerfile)4.3.19-alpine
,4.3-alpine
,4-alpine
(4.3.19/alpine/Dockerfile)
Make sure you have Docker installed and running for your platform. You can download Docker from https://www.docker.com.
NOTE: Python 2 based Docker images are no longer supported by the Docker Official Images, thus you'll have to use
plone/plone:5-python2
instead ofplone:5-python2
Choose either single Plone instance or ZEO cluster.
NOTE: It is inadvisable to use following configurations for production.
Plone standalone instances are best suited for testing Plone and development.
Download and start the latest Plone 5 container, based on Debian.
$ docker run -p 8080:8080 plone
This image includes EXPOSE 8080
(the Plone port), so standard container linking will make it automatically available to the linked containers. Now you can add a Plone Site at http://localhost:8080 - default Zope user and password are admin/admin
.
By using the tags
listed above a Plone container with a different version can be downloaded and started.
The following command starts a Plone 4.3 container, based on Alpine.
$ docker run -p 8080:8080 plone:4.3-alpine
ZEO cluster are best suited for production setups, you will need a loadbalancer.
Start ZEO server in the background
$ docker run -d --name=zeo plone zeo
Start 2 Plone clients (also in the background)
$ docker run -d --name=instance1 --link=zeo -e ZEO_ADDRESS=zeo:8080 -p 8081:8080 plone
$ docker run -d --name=instance2 --link=zeo -e ZEO_ADDRESS=zeo:8080 -p 8082:8080 plone
You can also start Plone in debug mode (fg
) by running
$ docker run -p 8080:8080 plone fg
Debug mode may also be used with ZEO
$ docker run --link=zeo -e ZEO_ADDRESS=zeo:8080 -p 8080:8080 plone fg
For more information on how to extend this image with your own custom settings, adding more add-ons, building it or mounting volumes, please refer to our documentation.
The Plone image uses several environment variable that allow to specify a more specific setup.
ADDONS
- Customize Plone via Plone add-ons using this environment variableZEO_ADDRESS
- This environment variable allows you to run Plone image as a ZEO client.SITE
- Add Plone with this id toData.fs
on first run. If NOT provided, you'll have to manually add a Plone Site via web UIVERSIONS
- Use specific versions of Plone Add-on or python libraries
Run Plone and install two addons (eea.facetednavigation and collective.easyform)
$ docker run -p 8080:8080 -e SITE="mysite" -e ADDONS="eea.facetednavigation collective.easyform" plone
To use specific add-ons versions:
-e ADDONS="eea.facetednavigation collective.easyform" -e VERSIONS="eea.facetednavigation=13.3 collective.easyform=2.1.0"
RestAPI:
$ docker run -p 8080:8080 -e SITE=plone plone
$ curl -H 'Accept: application/json' http://localhost:8080/plone
Plone:
PLONE_ADDONS
,ADDONS
- Customize Plone via Plone add-ons using this environment variablePLONE_SITE
,SITE
- Add Plone with this id toData.fs
on first run. If NOT provided, you'll have to manually add a Plone Site via web UIPLONE_VERSIONS
,VERSIONS
- Use specific versions of Plone Add-on or python librariesPLONE_PROFILES, PROFILES
- GenericSetup profiles to include whenSITE
environment provided.PLONE_ZCML
,ZCML
- Include custom Plone add-ons ZCML filesPLONE_DEVELOP
,DEVELOP
- Develop new or existing Plone add-ons
ZEO:
ZEO_ADDRESS
- This environment variable allows you to run Plone image as a ZEO client.ZEO_READ_ONLY
- Run Plone as a read-only ZEO client. Defaults tooff
.ZEO_CLIENT_READ_ONLY_FALLBACK
- A flag indicating whether a read-only remote storage should be acceptable as a fallback when no writable storages are available. Defaults tofalse
.ZEO_SHARED_BLOB_DIR
- Set this to on if the ZEO server and the instance have access to the same directory. Defaults tooff
.ZEO_STORAGE
- Set the storage number of the ZEO storage. Defaults to1
.ZEO_CLIENT_CACHE_SIZE
- Set the size of the ZEO client cache. Defaults to128MB
.ZEO_PACK_KEEP_OLD
- Can be set to false to disable the creation of *.fs.old files before the pack is run. Defaults to true.
CORS:
CORS_ALLOW_ORIGIN
- Origins that are allowed access to the resource. Either a comma separated list of origins, e.g.http://example.net,http://mydomain.com
or*
. Defaults tohttp://localhost:3000,http://127.0.0.1:3000
CORS_ALLOW_METHODS
- A comma separated list of HTTP method names that are allowed by this CORS policy, e.g.DELETE,GET,OPTIONS,PATCH,POST,PUT
. Defaults toDELETE,GET,OPTIONS,PATCH,POST,PUT
CORS_ALLOW_CREDENTIALS
- Indicates whether the resource supports user credentials in the request. Defaults totrue
CORS_EXPOSE_HEADERS
- A comma separated list of response headers clients can access, e.g.Content-Length,X-My-Header
. Defaults toContent-Length,X-My-Header
CORS_ALLOW_HEADERS
- A comma separated list of request headers allowed to be sent by the client, e.g.X-My-Header
. Defaults toAccept,Authorization,Content-Type,X-Custom-Header
CORS_MAX_AGE
- Indicates how long the results of a preflight request can be cached. Defaults to3600
Full documentation for end users can be found online at docs.plone.org.
- Issue Tracker: http://github.com/plone/plone.docker/issues
- Source Code: http://github.com/plone/plone.docker
- Documentation: http://docs.plone.org/
If you are having issues, please let us know at https://community.plone.org
The project is licensed under the GPLv2.