From development to continuous deployment.
Docker
Alin Voinea
Eau de Web, Romania
Plone
&
What is?
What is Docker?
Docker is for your system...
What is Docker?
...what virtualenv is for Python
What is Docker?
● Isolated environment
● Same environment (Linux, Mac, Windows...)
● Same environment (Devel, Production)
● Use your favorite Linux distribution
● ...or, build it from scratch
Before Docker
Installing and running Plone
without Docker
Plone - w/o Docker
Libraries
● libz (dev)
● libjpeg (dev)*
● readline (dev)*
● libexpat (dev)
● libssl or openssl (dev)
● libxml2 >= 2.7.8 (dev)*
● libxslt >= 1.1.26 (dev)*
Source:docs.plone.org
Python
● Python 2.7 (dev), built with support for
expat (xml.parsers.expat), zlib and ssl.
● (Python XML support may be a separate
package on some platforms.)*
● virtualenv*
Plone - w/o Docker
Minimal build
~/$ mkdir Plone-5
~/$ cd Plone-5
~/Plone-5$ virtualenv-2.7 zinstance
~/Plone-5$ cd zinstance
~/Plone-5/zinstance$ bin/pip install zc.buildout
~/Plone-5/zinstance$
echo """
[buildout]
extends =
http://dist.plone.org/release/5-latest/versions.cfg
parts =
instance
[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
http-address = 8080
eggs =
Plone
Pillow
""" > buildout.cfg
Source:docs.plone.org
Plone - w/o Docker
This will start a long download and build process ...
Errors like "SyntaxError: ("'return' outside function"..."" may be ignored.
After it finished you can start Plone in foreground-mode with:
$ bin/buildout
$ bin/instance fg
Source:docs.plone.org
Installing and running Plone
with Docker
Plone - w/ Docker
$ docker run -p 8080:8080 plone
hub.docker.com/_/plone
Plone Add-ons
Plone Add-ons
$ docker run 
-e ADDONS=”eea.facetednavigation collective.easyform” 
plone
Develop Plone Add-ons
$ mkdir src
$ cd src
$ git clone https://github.com/collective/eea.facetednavigation
$ chown -R 500 ../src
$ docker run 
-e ADDONS=”eea.facetednavigation” 
-e DEVELOP=”src/eea.facetednavigation” 
-v /host/path/to/src:/plone/instance/src 
plone fg
Debugging - pdb.set_trace()
● Run Plone from the inside of the container
$ docker run -it -e… plone bash
$ bin/instance fg
.
..
...
Zope ready to handle requests
...
(pdb)
Storage
Where is my Data.fs?
● Docker volume
$ docker run plone
$ docker volume ls
local f2b18118ef8c5e7c9ef10ef418f27e2a51502220ddecc218c9d28f
● Default location
$ ls /var/lib/docker/volumes
f2b18118ef8c5e7c9ef10ef418f27e2a51502220ddecc218c9d28f
Where is my Data.fs?
● Docker volume labels
$ docker run -v plone-data:/data plone
$ docker volume ls
plone-data
Where is my Data.fs?
● Unlabeled Docker volumes
$ docker run --name my-plone plone
$ docker volume ls
e2c080c412bc4d33b7d740ca7fee25
● On remove:
$ docker rm -v my-plone
$ docker volume ls
OMG, WHERE IS MY DATA?
Where is my Data.fs?
● Always LABEL your Docker volumes to avoid data loss
$ docker run --name=my-plone -v plone-data:/data plone
● On remove
$ docker rm -v my-plone
$ docker volume ls
plone-data
● Explicitly remove volumes:
$ docker volume rm plone-data
ZEO
# zeo client 1
$ docker run --link=zeo 
-e ZEO_ADDRESS=zeo:8100 plone
ZEO Server / ZEO Clients
# zeo server
$ docker run --name=zeo plone zeoserver
# zeo client 1
$ docker run --link=zeo 
-e ZEO_ADDRESS=zeo:8100 plone
Extend
Extending
● extended_buildout.cfg
● Dockerfile
Extend: extended_buildout.cfg
[buildout]
eggs +=
plone.restapi
collective.easyform
collective.solr
eea.facetednavigation
Extend: Dockerfile
FROM plone:5.0.6
USER root
RUN apt-get install -y ...
USER plone
COPY extended_buildout.cfg /plone/instance/
RUN bin/buildout -c my_buildout.cfg
Extend: Build & Run
$ docker build -t my-plone:5 .
$ docker run my-plone:5
Extend: Dockerfile documentation
docs.docker.com/engine/reference/builder
Orchestration: Single host
$ pip install docker-compose
Docker Compose: Plone & ZEO
$ vim docker-compose.yml
$ docker-compose up
$ docker-compose scale plone=3
version: "2"
volumes:
plone-data:
driver: local
services:
plone:
image: plone
environment:
- ZEO_ADDRESS=zeo:8100
zeo:
image: plone
command: zeoserver
volumes:
- plone-data:/data
Docker Compose: Load balancer
$ vim docker-compose.yml
$ docker-compose up
services:
...
load-balancer :
image: eeacms/haproxy
ports:
- 80:5000
- 1936:1936
environment:
- BACKENDS=plone
- BACKENDS_PORT=8080
- DNS_ENABLED=True
Docker Compose: Demo
https://youtu.be/DumoVlrOk4w
Docker Compose: Documentation
docs.docker.com/compose
Orchestration: Multiple hosts
Rancher
“A Complete Platform for Running
Containers”
Rancher: Install & running
$ docker run -p 8080:8080 rancher/server
Rancher: Demo
https://youtu.be/44zzuAUS-1M
Continuous Deployment
Docs
● hub.docker.com/_/plone
● docs.plone.org (soon)
● docker.com
● rancher.com
● github.com/eea?query=docker
Thanks
● Sven Strack
● Antonio de Marinis
● Eau de Web
● Liana Voinea (my wife)
Docker and plone

More Related Content

PDF
Plone and docker
PPTX
Dockerandjenkins citz2014
PPTX
Docker & Kubernetes
PPTX
Docker - Build, Ship, and Run Any App, Anywhere
PDF
Conan a C/C++ Package Manager
PPTX
Introduction to Docker
PPTX
DevOps: Docker Workshop
PPTX
Dockercon - Building a Chef cookbook testing pipeline with Drone.IO and Docker
Plone and docker
Dockerandjenkins citz2014
Docker & Kubernetes
Docker - Build, Ship, and Run Any App, Anywhere
Conan a C/C++ Package Manager
Introduction to Docker
DevOps: Docker Workshop
Dockercon - Building a Chef cookbook testing pipeline with Drone.IO and Docker

What's hot (19)

PPTX
Dockerizing pharo
PDF
Usando docker en Azure
PDF
Conan.io - The C/C++ package manager for Developers
PPTX
DrupalCafe Vol.35 - Dockerで始めるDrupal
PDF
Python - Flask - miniapp - ignite
PDF
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)
PDF
Workshop - Golang language
PDF
Docker in Action
PDF
Iniciando com Docker
PPTX
Docker 101
PDF
Ratpack On the Docks
PDF
Groovy Powered Clean Code
PPTX
Docker Introduction
PDF
Docker - from development to production (PHPNW 2017-09-05)
PPTX
Meetup #24 Docker for Node Developer
PDF
Builder and BuildKit
PDF
Deploying a Pylons app to Google App Engine
PDF
Gitlab - Creating C++ applications with Gitlab CI
PPTX
Docker Ecosystem: Part III - Machine
Dockerizing pharo
Usando docker en Azure
Conan.io - The C/C++ package manager for Developers
DrupalCafe Vol.35 - Dockerで始めるDrupal
Python - Flask - miniapp - ignite
當專案漸趕,當遷移也不再那麼難 (Ship Your Projects with Docker EcoSystem)
Workshop - Golang language
Docker in Action
Iniciando com Docker
Docker 101
Ratpack On the Docks
Groovy Powered Clean Code
Docker Introduction
Docker - from development to production (PHPNW 2017-09-05)
Meetup #24 Docker for Node Developer
Builder and BuildKit
Deploying a Pylons app to Google App Engine
Gitlab - Creating C++ applications with Gitlab CI
Docker Ecosystem: Part III - Machine
Ad

Viewers also liked (8)

PDF
Plone + AWS at Plone Symposium tokyo 2015
PPTX
Trace Lessons Learned H4Dip Stanford 2016
PPTX
Aggregate db Lessons Learned H4Dip Stanford 2016
PPTX
Peacekeeping Lessons Learned H4Dip Stanford 2016
PPTX
Space Evaders Lessons Learned H4Dip Stanford 2016
PPTX
Exodus Lessons Learned H4Dip Stanford 2016
PPTX
Hacking CT Lessons Learned H4Dip Stanford 2016
PPTX
Fatal journeys (Team 621) Lessons Learned H4Dip Stanford 2016
Plone + AWS at Plone Symposium tokyo 2015
Trace Lessons Learned H4Dip Stanford 2016
Aggregate db Lessons Learned H4Dip Stanford 2016
Peacekeeping Lessons Learned H4Dip Stanford 2016
Space Evaders Lessons Learned H4Dip Stanford 2016
Exodus Lessons Learned H4Dip Stanford 2016
Hacking CT Lessons Learned H4Dip Stanford 2016
Fatal journeys (Team 621) Lessons Learned H4Dip Stanford 2016
Ad

Similar to Docker and plone (20)

PDF
From zero to Docker
PDF
Introduction to Docker and Containers
PDF
A Gentle Introduction to Docker and Containers
PDF
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
PDF
Docker linuxday 2015
PDF
Streamline your development environment with docker
PDF
Docker n co
PDF
Docker 0.11 at MaxCDN meetup in Los Angeles
PDF
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
PDF
Perspectives on Docker
PDF
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
PDF
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
PDF
Introduction to Docker at the Azure Meet-up in New York
PDF
Docker for mere mortals
PPTX
Docker slides
PDF
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
PDF
Introduction to Docker, December 2014 "Tour de France" Edition
PDF
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)
PDF
Docker Insight
PPTX
Powercoders · Docker · Fall 2021.pptx
From zero to Docker
Introduction to Docker and Containers
A Gentle Introduction to Docker and Containers
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
Docker linuxday 2015
Streamline your development environment with docker
Docker n co
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 1 0 1 0 1: a Docker introduction, actualized for the stable release of...
Perspectives on Docker
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Introduction to Docker at the Azure Meet-up in New York
Docker for mere mortals
Docker slides
Workshop : 45 minutes pour comprendre Docker avec Jérôme Petazzoni
Introduction to Docker, December 2014 "Tour de France" Edition
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)
Docker Insight
Powercoders · Docker · Fall 2021.pptx

More from Alin Voinea (16)

PDF
EEA and Plone Lightning at Plone Conference 2024 Brasilia
PPTX
EEA & Eau de Web Front-end add-ons - Plone conference 2023
PDF
EEA Faceted Navigation and Plone 6.pdf
PPTX
EEA Volto Add-ons - Plone Conference 2020
PPTX
Plone 6 / Volto Dexterity Content Types - Schema & Layout
PDF
Docker & rancher
PDF
Continuous Delivery/Deployment w/ Gitflow, Docker, Jenkins and Rancher
PDF
Faceted navigation in Plone 5
PDF
Plone and docker
PDF
Kotti CMS 101
PDF
Developing Single Page Applications on Plone using AngularJS
PDF
Responsive design in plone
PPTX
Display eea’s semantic content with elasticsearch and node.js applications sh...
PPTX
New EEA Plone Add-ons
PDF
Python eggs (RO)
PDF
Data visualization in plone
EEA and Plone Lightning at Plone Conference 2024 Brasilia
EEA & Eau de Web Front-end add-ons - Plone conference 2023
EEA Faceted Navigation and Plone 6.pdf
EEA Volto Add-ons - Plone Conference 2020
Plone 6 / Volto Dexterity Content Types - Schema & Layout
Docker & rancher
Continuous Delivery/Deployment w/ Gitflow, Docker, Jenkins and Rancher
Faceted navigation in Plone 5
Plone and docker
Kotti CMS 101
Developing Single Page Applications on Plone using AngularJS
Responsive design in plone
Display eea’s semantic content with elasticsearch and node.js applications sh...
New EEA Plone Add-ons
Python eggs (RO)
Data visualization in plone

Recently uploaded (20)

PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PPTX
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
PDF
INTERSPEECH 2025 「Recent Advances and Future Directions in Voice Conversion」
PPTX
Microsoft User Copilot Training Slide Deck
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PPTX
Training Program for knowledge in solar cell and solar industry
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
DOCX
search engine optimization ppt fir known well about this
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PDF
Auditboard EB SOX Playbook 2023 edition.
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
PPTX
MuleSoft-Compete-Deck for midddleware integrations
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Consumable AI The What, Why & How for Small Teams.pdf
Custom Battery Pack Design Considerations for Performance and Safety
Enhancing plagiarism detection using data pre-processing and machine learning...
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
INTERSPEECH 2025 「Recent Advances and Future Directions in Voice Conversion」
Microsoft User Copilot Training Slide Deck
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
4 layer Arch & Reference Arch of IoT.pdf
Co-training pseudo-labeling for text classification with support vector machi...
Training Program for knowledge in solar cell and solar industry
Convolutional neural network based encoder-decoder for efficient real-time ob...
search engine optimization ppt fir known well about this
Rapid Prototyping: A lecture on prototyping techniques for interface design
Auditboard EB SOX Playbook 2023 edition.
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
MuleSoft-Compete-Deck for midddleware integrations
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
sbt 2.0: go big (Scala Days 2025 edition)
Module 1 Introduction to Web Programming .pptx
Consumable AI The What, Why & How for Small Teams.pdf

Docker and plone