plone / plone.docker

plone on docker
GNU General Public License v2.0
59 stars 64 forks source link
docker docker-image dockerfile plone plone-image zope-application

NOTE: Our images are excellent for test driving Plone, checking add-ons or as a base for development/theming. \ We don't recommended them for production!

Plone

Plone is a free and open source content management system built on top of the Zope application server.

Features

NOTE: Python 2 based Docker images are no longer supported by the Docker Official Images \ If you need Python 2, you can use plone/plone:5-python2 instead of plone:5-python2.

Supported tags and respective Dockerfile links

Older versions

Prerequisites

Make sure you have Docker installed and running for your platform. You can download Docker from https://www.docker.com.

Usage

Choose either single Plone instance or ZEO cluster.

NOTE: It is inadvisable to use following configurations for production.

Standalone Plone instance

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), standard container linking will make it automatically available to the linked containers.

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

Plone as ZEO cluster

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

Start Plone in debug mode

You can also start Plone in debug mode (fg) by running

docker run -p 8080:8080 plone fg

Debug mode may 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.

Supported environment variables

The Plone image uses several environment variable that allow to specify a more specific setup.

For basic usage

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

For advanced usage

Plone:

To add custom sources, the SOURCES env var needs to be a string containing a comma-separated list of sources. This is different from the other environment variables described above, which are space-separated.

For example:

 -e SOURCES="plone.restapi = git https://github.com/plone/plone.restapi,plone.staticresources = git https://github.com/plone/plone.staticresources"

ZEO:

CORS:

RELSTORAGE:

All other available environment variables match exactly with RelStorage settings, according to the following table and the settings specification available on the docs.

Environment variable RelStorage option Default value
RELSTORAGE_NAME name None
RELSTORAGE_READ_ONLY read-only None
RELSTORAGE_KEEP_HISTORY keep-history None
RELSTORAGE_COMMIT_LOCK_TIMEOUT commit-lock-timeout None
RELSTORAGE_COMMIT_LOCK_ID commit-lock-id None
RELSTORAGE_CREATE_SCHEMA create-schema None
RELSTORAGE_BLOB_DIR blob-dir /plone/instance/var/blobstorage
RELSTORAGE_SHARED_BLOB_DIR shared-blob-dir None
RELSTORAGE_BLOB_CACHE_SIZE blob-cache-size None
RELSTORAGE_BLOB_CACHE_SIZE_CHECK blob-cache-size-check None
RELSTORAGE_BLOB_CACHE_SIZE_CHECK_EXTERNAL blob-cache-size-check-external None
RELSTORAGE_BLOB_CHUNK_SIZE blob-chunk-size None
RELSTORAGE_REPLICA_CONF replica-conf None
RELSTORAGE_RO_REPLICA_CONF ro-replica-conf None
RELSTORAGE_REPLICA_TIMEOUT replica-timeout None
RELSTORAGE_REVERT_WHEN_STALE revert-when-stale None
RELSTORAGE_PACK_GC pack-gc None
RELSTORAGE_PACK_PREPACK_ONLY pack-prepack-only None
RELSTORAGE_PACK_SKIP_PREPACK pack-skip-prepack None
RELSTORAGE_PACK_BATCH_TIMEOUT pack-batch-timeout None
RELSTORAGE_PACK_COMMIT_BUSY_DELAY pack-commit-busy-delay None
RELSTORAGE_CACHE_PREFIX cache-prefix None
RELSTORAGE_CACHE_LOCAL_MB cache-local-mb None
RELSTORAGE_CACHE_LOCAL_OBJECT_MAX cache-local-object-max None
RELSTORAGE_CACHE_LOCAL_COMPRESSION cache-local-compressione None
RELSTORAGE_CACHE_DELTA_SIZE_LIMIT cache-delta-size-limit None
RELSTORAGE_CACHE_LOCAL_DIR cache-local-dir None

Documentation

Full documentation for end users can be found online at docs.plone.org.

Contribute

Support

If you are having issues, please let us know at https://community.plone.org

License

The project is licensed under the GPLv2.