www.camunda.comtwitter.com/camundaBPM
17.09.15
Sebastian Menski
CamundaCommunityDay2015
Camunda and Docker
www.camunda.com
What is Docker
● Released March 2013
● v1.0.0 June 9, 2014
● Lightweight containers
● Completely isolated environments
● All dependencies included
● Easy distributed through registry
● Daemon Linux only
● Clients for Win and Mac
-2-
www.camunda.com
Camunda in Docker
● Community Project
https://github.com/camunda/docker-camunda-bpm-platform
https://hub.docker.com/r/camunda/camunda-bpm-platform/
-3-
www.camunda.com
Get Started
docker pull camunda/camunda-bpm-platform:latest
docker run -d --name camunda -p 8080:8080 camunda/camunda-bpm-platform:latest
# open browser with url: http://localhost:8080/camunda-welcome/index.html
This starts an container with:
● Java 8
● Apache Tomcat 7.0.62
● Camunda 7.4.0-alpha1
-4-
www.camunda.com
Use Cases
● Development
● Testing
● Demo and Presentation
● Proof of Concept
● (Maybe) Deployment
-5-
www.camunda.com
Configure Camunda in Docker
● DB_DRIVER
● DB_URL
● DB_USERNAME
● DB_PASSWORD
● SKIP_DB_CONFIG
docker run -d --name camunda -p 8080:8080 --link postgresql:db 
-e DB_DRIVER=org.postgresql.Driver 
-e DB_URL=jdbc:postgresql://db:5432/process-engine 
-e DB_USERNAME=camunda 
-e DB_PASSWORD=camunda 
camunda/camunda-bpm-platform:latest
-6-
www.camunda.com
Customize During Startup
docker run -d --name camunda -p 8080:8080 
-v $PWD/bpm-platform.xml:/camunda/conf/bpm-platform.xml 
camunda/camunda-bpm-platform:latest
docker run -d --name camunda -p 8080:8080 
-v /PATH/TO/DEMO/twitter.war:/camunda/webapps/twitter.war 
camunda/camunda-bpm-platform:latest
-7-
www.camunda.com
Docker Compose Demo
camunda:
image: camunda/camunda-bpm-platform:tomcat-SNAPSHOT
environment:
- DB_DRIVER=org.postgresql.Driver
- DB_URL=jdbc:postgresql://db:5432/camunda
- DB_USERNAME=camunda
- DB_PASSWORD=camunda
volumes:
- $PWD/target/docker-demo-invoice.war:/camunda/webapps/docker-demo-invoice.
war
links:
- db
ports:
- "8080"
db:
image: postgres
environment:
- POSTGRES_USER=camunda
- POSTGRES_PASSWORD=camunda
-8-
www.camunda.com
Create Your Own Docker Image
FROM camunda/camunda-bpm-platform:latest
RUN rm /camunda/webapps/camunda-invoice
ADD my.war /camunda/webapps/my.war
-9-
www.camunda.com
Example Workbench
FROM camunda/camunda-bpm-platform:tomcat-latest
ENV VERSION=1.0.0-alpha9 GITHUB=https://github.com/camunda/camunda-bpm-workbench
ADD  ${GITHUB}/releases/download/${VERSION}/camunda-workbench-dist-
embeddable-${VERSION}.jar /camunda/lib/
RUN xmlstarlet ed -L 
-s //_:process-engine/_:plugins -t elem -n TMP -v "" 
-s //TMP -t elem -n class -v 
“org.camunda.bpm.debugger.server.EmbeddableDebugWebsocketBootstrap" 
-r //TMP -v plugin 
/camunda/conf/bpm-platform.xml
EXPOSE 8090 9090
-10-
www.camunda.com
Docker Maven Integration
● docker-maven-plugin
https://github.com/rhuss/docker-maven-plugin
○ build, start, stop Docker containers with artifacts
○ Cargo support for integration tests
● Arquillian Cube
https://github.com/arquillian/arquillian-cube
-11-

Camunda Docker

  • 1.
  • 2.
    www.camunda.com What is Docker ●Released March 2013 ● v1.0.0 June 9, 2014 ● Lightweight containers ● Completely isolated environments ● All dependencies included ● Easy distributed through registry ● Daemon Linux only ● Clients for Win and Mac -2-
  • 3.
    www.camunda.com Camunda in Docker ●Community Project https://github.com/camunda/docker-camunda-bpm-platform https://hub.docker.com/r/camunda/camunda-bpm-platform/ -3-
  • 4.
    www.camunda.com Get Started docker pullcamunda/camunda-bpm-platform:latest docker run -d --name camunda -p 8080:8080 camunda/camunda-bpm-platform:latest # open browser with url: http://localhost:8080/camunda-welcome/index.html This starts an container with: ● Java 8 ● Apache Tomcat 7.0.62 ● Camunda 7.4.0-alpha1 -4-
  • 5.
    www.camunda.com Use Cases ● Development ●Testing ● Demo and Presentation ● Proof of Concept ● (Maybe) Deployment -5-
  • 6.
    www.camunda.com Configure Camunda inDocker ● DB_DRIVER ● DB_URL ● DB_USERNAME ● DB_PASSWORD ● SKIP_DB_CONFIG docker run -d --name camunda -p 8080:8080 --link postgresql:db -e DB_DRIVER=org.postgresql.Driver -e DB_URL=jdbc:postgresql://db:5432/process-engine -e DB_USERNAME=camunda -e DB_PASSWORD=camunda camunda/camunda-bpm-platform:latest -6-
  • 7.
    www.camunda.com Customize During Startup dockerrun -d --name camunda -p 8080:8080 -v $PWD/bpm-platform.xml:/camunda/conf/bpm-platform.xml camunda/camunda-bpm-platform:latest docker run -d --name camunda -p 8080:8080 -v /PATH/TO/DEMO/twitter.war:/camunda/webapps/twitter.war camunda/camunda-bpm-platform:latest -7-
  • 8.
    www.camunda.com Docker Compose Demo camunda: image:camunda/camunda-bpm-platform:tomcat-SNAPSHOT environment: - DB_DRIVER=org.postgresql.Driver - DB_URL=jdbc:postgresql://db:5432/camunda - DB_USERNAME=camunda - DB_PASSWORD=camunda volumes: - $PWD/target/docker-demo-invoice.war:/camunda/webapps/docker-demo-invoice. war links: - db ports: - "8080" db: image: postgres environment: - POSTGRES_USER=camunda - POSTGRES_PASSWORD=camunda -8-
  • 9.
    www.camunda.com Create Your OwnDocker Image FROM camunda/camunda-bpm-platform:latest RUN rm /camunda/webapps/camunda-invoice ADD my.war /camunda/webapps/my.war -9-
  • 10.
    www.camunda.com Example Workbench FROM camunda/camunda-bpm-platform:tomcat-latest ENVVERSION=1.0.0-alpha9 GITHUB=https://github.com/camunda/camunda-bpm-workbench ADD ${GITHUB}/releases/download/${VERSION}/camunda-workbench-dist- embeddable-${VERSION}.jar /camunda/lib/ RUN xmlstarlet ed -L -s //_:process-engine/_:plugins -t elem -n TMP -v "" -s //TMP -t elem -n class -v “org.camunda.bpm.debugger.server.EmbeddableDebugWebsocketBootstrap" -r //TMP -v plugin /camunda/conf/bpm-platform.xml EXPOSE 8090 9090 -10-
  • 11.
    www.camunda.com Docker Maven Integration ●docker-maven-plugin https://github.com/rhuss/docker-maven-plugin ○ build, start, stop Docker containers with artifacts ○ Cargo support for integration tests ● Arquillian Cube https://github.com/arquillian/arquillian-cube -11-