SlideShare a Scribd company logo
Johan Janssen, Info Support
Continuous Delivery
DockerDocker
Jenkins build pipeline
Questions
Automate everything
Software quality
Continuous improvement
Regular deployments
Anyone can deploy
DevOps End users
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
Automate environment provisioning
Automate application deployment
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
Simple general commands
No Domain Specific Language (DSL)
Configuration with operating system commands
Disk space efficiency
Memory efficiency
Speed
Compatibility (run anywhere)
Isolation
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
Since March 2013
Soon: 1.0 production ready release
Around 400 contributorsAround 400 contributors
1.2M+ container downloads
Docker on Ubuntu 14.04
apt-get install docker.io
docker.io run -i -t ubuntu:saucy
/bin/bash
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
FROM ubuntu:saucy
# Add oracle java 7 repository
RUN apt-get -y install software-properties-common
RUN add-apt-repository ppa:webupd8team/java
RUN apt-get update && apt-get -y upgradeRUN apt-get update && apt-get -y upgrade
# Accept the Oracle Java license
RUN echo "oracle-java7-installer shared/accepted-oracle-license-
v1-1 boolean true" | debconf-set-selections
# Install Oracle Java
RUN apt-get -y install oracle-java7-installer
ENV JAVA_HOME /usr/lib/jvm/java-7-oracle
FROM GeneralBase
RUN apt-get install -y wget unzip
RUN wget
http://dist.sonar.codehaus.org/sonarqube-http://dist.sonar.codehaus.org/sonarqube-
4.2.zip
RUN unzip sonarqube-4.2.zip -d /opt
RUN rm sonarqube-4.2.zip
EXPOSE 9000
EXPOSE 9092
CMD ["/opt/sonarqube-4.2/bin/linux-x86-
64/sonar.sh", "console", "/bin/bash"]
Create ‘Dockerfile’
Build the containers:Build the containers:
docker.io build -t GeneralBase .
docker.io build -t Sonar .
Start proces:
docker.io run -p 9000:9000
–p 9092:9092 -d Sonar
# docker.io ps –a
CONTAINER ID: ecbecf77461b
IMAGE: Sonar:latest
COMMAND: /opt/sonarqube-4.2/bCOMMAND: /opt/sonarqube-4.2/b
CREATED: 32 minutes ago
STATUS: Up 32 minutes
PORTS: 0.0.0.0:9000->9000/tcp,
0.0.0.0:9092->9092/tcp
NAMES: sick_nobel
Start / stop / restart
docker.io [start / stop / restart] containerid
Show processes running in container
docker.io top containerid
Create image from container
docker.io commit containeriddocker.io commit containerid
username/imagename
docker.io push username/imagename
GeneralBaseGeneralBaseGeneralBaseGeneralBase
AppServerBaseAppServerBaseAppServerBaseAppServerBase JenkinsJenkinsJenkinsJenkins SonarSonarSonarSonar GitblitGitblitGitblitGitblit NexusNexusNexusNexus
Environment DEnvironment DEnvironment DEnvironment D
Environment TEnvironment TEnvironment TEnvironment T
Environment AEnvironment AEnvironment AEnvironment A
Environment PEnvironment PEnvironment PEnvironment P
JenkinsDataContainerJenkinsDataContainerJenkinsDataContainerJenkinsDataContainer
Dockerfile
ENV JENKINS_HOME /var/JenkinsData
Docker commandsDocker commands
docker.io run -v /var/JenkinsData –name
JenkinsDataContainer ubuntu:saucy true
docker.io run -p 8080:8080 --volumes-from
JenkinsDataContainer -d Jenkins
# docker.io images --tree
└─ 179.9 MB Tags: ubuntu:saucy
└─253.6 MB
└─741.8 MB Tags: GeneralBase:latest
└─763.6 MB Tags: AppServerBase:latest└─763.6 MB Tags: AppServerBase:latest
├─763.6 MB Tags: EnvironmentP:latest
├─763.6 MB Tags: EnvironmentA:latest
├─763.6 MB Tags: EnvironmentT:latest
└─763.6 MB Tags: EnvironmentD:latest
└─865.6 MB Tags: Nexus:latest
└─808.3 MB Tags: Gitblit:latest
└─901.5 MB Tags: Sonar:latest
└─805.4 MB Tags: Jenkins:latest
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
Stop containers
docker.io stop $(docker.io ps -a -q)
Remove containersRemove containers
docker.io rm $(docker.io ps -a -q)
Remove images
docker.io rmi $(docker.io images -q)
real 4m11.729sreal 4m11.729s
user 0m3.329s
sys 0m10.054s
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
Simple to use
Really popular
Used in many organizations
Regular updatesRegular updates
Big community creating plugins etc.
Most developers already use it
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
Continuous delivery
Continuous deployment
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
1
2
5
3
4
5
6
7
8
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
Execute job after several (parallel) jobs are finished.
FirstJob
ParallelJob1
ParallelJob2
LastJob
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen
Good looking join
Complex workflow
EtceteraEtcetera
Advantage: Jenkins jobs are the basis
and can be reused.
Try to keep it simple!
Build Flow Plugin
oDomain Specific Language
oFeatures like retry, parallel,oFeatures like retry, parallel,
guard/rescue (similar to try/finally)
Multijob Plugin
Delivery Pipeline Plugin
johan.janssen@infosupport.com

More Related Content

PDF
Rundeck + Nexus (from Nexus Live on June 5, 2014)
PDF
Building a Service Delivery Platform - JCICPH 2014
PDF
Docker Enables DevOps
PDF
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
PDF
Continuous Delivery with Jenkins Workflow
PPTX
Continuous Delivery with Jenkins and Wildfly (2014)
PPTX
Javaone 2014 - Git & Docker with Jenkins
PDF
DevOps@Morpho for ParisDevOps - 2nd of December 2014
Rundeck + Nexus (from Nexus Live on June 5, 2014)
Building a Service Delivery Platform - JCICPH 2014
Docker Enables DevOps
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Continuous Delivery with Jenkins Workflow
Continuous Delivery with Jenkins and Wildfly (2014)
Javaone 2014 - Git & Docker with Jenkins
DevOps@Morpho for ParisDevOps - 2nd of December 2014

What's hot (20)

PPTX
CI/CD Pipeline to Deploy and Maintain an OpenStack IaaS Cloud
PDF
Jenkins Workflow Webinar - Dec 10, 2014
PDF
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
PDF
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
PPTX
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
PDF
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
ODP
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015
PDF
Git and GitHub for Documentation
PDF
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
PDF
DCSF 19 Building Your Development Pipeline
PPTX
Anatomy of a Build Pipeline
PDF
Using Docker for Testing
PPTX
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
PPTX
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
PPTX
Fluo CICD OpenStack Summit
PDF
Continuous Delivery Pipeline with Docker and Jenkins
PDF
Scaling Jenkins
PPTX
2016 Docker Palo Alto - CD with ECS and Jenkins
PDF
A Reference Architecture to Enable Visibility and Traceability across the Ent...
PDF
Master Continuous Delivery with CloudBees Jenkins Platform
CI/CD Pipeline to Deploy and Maintain an OpenStack IaaS Cloud
Jenkins Workflow Webinar - Dec 10, 2014
Analyze This! CloudBees Jenkins Cluster Operations and Analytics
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
SD DevOps Meet-up - Jenkins 2.0 and Pipeline-as-Code
From Continuous Integration to Continuous Delivery with Jenkins - javaland.de...
A CI/CD Pipeline to Deploy and Maintain OpenStack - cfgmgmtcamp2015
Git and GitHub for Documentation
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DCSF 19 Building Your Development Pipeline
Anatomy of a Build Pipeline
Using Docker for Testing
DOES14 - Gary Gruver - Macy's - Transforming Traditional Enterprise Software ...
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Fluo CICD OpenStack Summit
Continuous Delivery Pipeline with Docker and Jenkins
Scaling Jenkins
2016 Docker Palo Alto - CD with ECS and Jenkins
A Reference Architecture to Enable Visibility and Traceability across the Ent...
Master Continuous Delivery with CloudBees Jenkins Platform
Ad

Viewers also liked (20)

PPTX
DOES14 - Joshua Corman - Sonatype
PDF
Enterprise CI as-a-Service using Jenkins
PPTX
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
PDF
DevOps: A Culture Transformation, More than Technology
PPTX
Jenkins Build System
PDF
JavaCro'14 - Developing Google Chromecast applications on Android – Branimir ...
PDF
JavaCro'14 - WebSockets and OpenLayers joined with Spring – Bojan Kljajin
PDF
JavaCro'14 - Take Agile adoption to the next level with Integration Competenc...
PDF
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
PDF
JavaCro'14 - Profile any environment with Java Flight Recorder – Johan Janssen
PDF
JavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
PDF
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
PDF
JavaCro'14 - How to handle large amounts of data in real time using a cloud e...
PDF
JavaCro'14 - Packaging and installing of the JEE solution – Miroslav Rešetar
PDF
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
PDF
PDF
JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...
PDF
JavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan Raguž
PDF
JavaCro'14 - Vaadin scalability myth – Gordan Ivanović
PDF
JavaCro'14 - The World of Java – in Croatia – Branko Mihaljević and Aleksande...
DOES14 - Joshua Corman - Sonatype
Enterprise CI as-a-Service using Jenkins
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps: A Culture Transformation, More than Technology
Jenkins Build System
JavaCro'14 - Developing Google Chromecast applications on Android – Branimir ...
JavaCro'14 - WebSockets and OpenLayers joined with Spring – Bojan Kljajin
JavaCro'14 - Take Agile adoption to the next level with Integration Competenc...
JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander...
JavaCro'14 - Profile any environment with Java Flight Recorder – Johan Janssen
JavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
JavaCro'14 - How to handle large amounts of data in real time using a cloud e...
JavaCro'14 - Packaging and installing of the JEE solution – Miroslav Rešetar
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Amphinicy crown jewels our software development infrastructure –...
JavaCro'14 - Java in M2M technologies – Mango M2M software – Ivan Raguž
JavaCro'14 - Vaadin scalability myth – Gordan Ivanović
JavaCro'14 - The World of Java – in Croatia – Branko Mihaljević and Aleksande...
Ad

Similar to JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen (20)

PPTX
Continuous delivery with docker
PPTX
Docker for Java developers at JavaLand
PPTX
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
PDF
Introduction to Docker
PDF
The Dockerfile Explosion and the Need for Higher Level Tools by Gareth Rushgrove
PDF
Docker module 1
PPTX
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
PDF
Docker jako prostředí pro automatizaci testů
PDF
Docker for mere mortals
PPTX
Introduction to docker
PDF
Delivering Docker & K3s worloads to IoT Edge devices
PPSX
Docker and containers - Presentation Slides by Priyadarshini Anand
PPTX
Develop with docker 2014 aug
PPTX
Docker Ecosystem on Azure
PPTX
Dockerizing a Symfony2 application
ODP
Docker engine - Indroduc
PPTX
Docker
PDF
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
PPTX
Running Docker in Development & Production (DevSum 2015)
PDF
Deployment Tactics
Continuous delivery with docker
Docker for Java developers at JavaLand
Gebruik dezelfde Docker container voor Java applicaties tijdens ontwikkelen e...
Introduction to Docker
The Dockerfile Explosion and the Need for Higher Level Tools by Gareth Rushgrove
Docker module 1
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker jako prostředí pro automatizaci testů
Docker for mere mortals
Introduction to docker
Delivering Docker & K3s worloads to IoT Edge devices
Docker and containers - Presentation Slides by Priyadarshini Anand
Develop with docker 2014 aug
Docker Ecosystem on Azure
Dockerizing a Symfony2 application
Docker engine - Indroduc
Docker
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Running Docker in Development & Production (DevSum 2015)
Deployment Tactics

More from HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association (20)

PDF
Java cro'21 the best tools for java developers in 2021 - hujak
PDF
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
PDF
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
PPTX
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
PPTX
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
PDF
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
PDF
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
PDF
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
PPTX
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
PDF
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
PDF
Javantura v6 - When remote work really works - the secrets behind successful ...
PDF
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
PDF
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
PDF
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
PPTX
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
PDF
Javantura v6 - How can you improve the quality of your application - Ioannis ...
PDF
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
PDF
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
PDF
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
PDF
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Java cro'21 the best tools for java developers in 2021 - hujak
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic

Recently uploaded (20)

PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Approach and Philosophy of On baking technology
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
A Presentation on Artificial Intelligence
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPT
Teaching material agriculture food technology
PDF
Machine learning based COVID-19 study performance prediction
Agricultural_Statistics_at_a_Glance_2022_0.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
20250228 LYD VKU AI Blended-Learning.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
NewMind AI Weekly Chronicles - August'25 Week I
Approach and Philosophy of On baking technology
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
A Presentation on Artificial Intelligence
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Diabetes mellitus diagnosis method based random forest with bat algorithm
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Reach Out and Touch Someone: Haptics and Empathic Computing
Encapsulation_ Review paper, used for researhc scholars
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
NewMind AI Monthly Chronicles - July 2025
Dropbox Q2 2025 Financial Results & Investor Presentation
Chapter 3 Spatial Domain Image Processing.pdf
Teaching material agriculture food technology
Machine learning based COVID-19 study performance prediction

JavaCro'14 - Continuous delivery of Java EE applications with Jenkins and Docker – Johan Janssen

  • 3. Automate everything Software quality Continuous improvement Regular deployments Anyone can deploy
  • 13. Simple general commands No Domain Specific Language (DSL) Configuration with operating system commands Disk space efficiency Memory efficiency Speed Compatibility (run anywhere) Isolation
  • 15. Since March 2013 Soon: 1.0 production ready release Around 400 contributorsAround 400 contributors 1.2M+ container downloads
  • 16. Docker on Ubuntu 14.04 apt-get install docker.io docker.io run -i -t ubuntu:saucy /bin/bash
  • 19. FROM ubuntu:saucy # Add oracle java 7 repository RUN apt-get -y install software-properties-common RUN add-apt-repository ppa:webupd8team/java RUN apt-get update && apt-get -y upgradeRUN apt-get update && apt-get -y upgrade # Accept the Oracle Java license RUN echo "oracle-java7-installer shared/accepted-oracle-license- v1-1 boolean true" | debconf-set-selections # Install Oracle Java RUN apt-get -y install oracle-java7-installer ENV JAVA_HOME /usr/lib/jvm/java-7-oracle
  • 20. FROM GeneralBase RUN apt-get install -y wget unzip RUN wget http://dist.sonar.codehaus.org/sonarqube-http://dist.sonar.codehaus.org/sonarqube- 4.2.zip RUN unzip sonarqube-4.2.zip -d /opt RUN rm sonarqube-4.2.zip EXPOSE 9000 EXPOSE 9092 CMD ["/opt/sonarqube-4.2/bin/linux-x86- 64/sonar.sh", "console", "/bin/bash"]
  • 21. Create ‘Dockerfile’ Build the containers:Build the containers: docker.io build -t GeneralBase . docker.io build -t Sonar . Start proces: docker.io run -p 9000:9000 –p 9092:9092 -d Sonar
  • 22. # docker.io ps –a CONTAINER ID: ecbecf77461b IMAGE: Sonar:latest COMMAND: /opt/sonarqube-4.2/bCOMMAND: /opt/sonarqube-4.2/b CREATED: 32 minutes ago STATUS: Up 32 minutes PORTS: 0.0.0.0:9000->9000/tcp, 0.0.0.0:9092->9092/tcp NAMES: sick_nobel
  • 23. Start / stop / restart docker.io [start / stop / restart] containerid Show processes running in container docker.io top containerid
  • 24. Create image from container docker.io commit containeriddocker.io commit containerid username/imagename docker.io push username/imagename
  • 25. GeneralBaseGeneralBaseGeneralBaseGeneralBase AppServerBaseAppServerBaseAppServerBaseAppServerBase JenkinsJenkinsJenkinsJenkins SonarSonarSonarSonar GitblitGitblitGitblitGitblit NexusNexusNexusNexus Environment DEnvironment DEnvironment DEnvironment D Environment TEnvironment TEnvironment TEnvironment T Environment AEnvironment AEnvironment AEnvironment A Environment PEnvironment PEnvironment PEnvironment P JenkinsDataContainerJenkinsDataContainerJenkinsDataContainerJenkinsDataContainer
  • 26. Dockerfile ENV JENKINS_HOME /var/JenkinsData Docker commandsDocker commands docker.io run -v /var/JenkinsData –name JenkinsDataContainer ubuntu:saucy true docker.io run -p 8080:8080 --volumes-from JenkinsDataContainer -d Jenkins
  • 27. # docker.io images --tree └─ 179.9 MB Tags: ubuntu:saucy └─253.6 MB └─741.8 MB Tags: GeneralBase:latest └─763.6 MB Tags: AppServerBase:latest└─763.6 MB Tags: AppServerBase:latest ├─763.6 MB Tags: EnvironmentP:latest ├─763.6 MB Tags: EnvironmentA:latest ├─763.6 MB Tags: EnvironmentT:latest └─763.6 MB Tags: EnvironmentD:latest └─865.6 MB Tags: Nexus:latest └─808.3 MB Tags: Gitblit:latest └─901.5 MB Tags: Sonar:latest └─805.4 MB Tags: Jenkins:latest
  • 31. Stop containers docker.io stop $(docker.io ps -a -q) Remove containersRemove containers docker.io rm $(docker.io ps -a -q) Remove images docker.io rmi $(docker.io images -q)
  • 32. real 4m11.729sreal 4m11.729s user 0m3.329s sys 0m10.054s
  • 34. Simple to use Really popular Used in many organizations Regular updatesRegular updates Big community creating plugins etc. Most developers already use it
  • 43. Execute job after several (parallel) jobs are finished. FirstJob ParallelJob1 ParallelJob2 LastJob
  • 46. Good looking join Complex workflow EtceteraEtcetera Advantage: Jenkins jobs are the basis and can be reused. Try to keep it simple!
  • 47. Build Flow Plugin oDomain Specific Language oFeatures like retry, parallel,oFeatures like retry, parallel, guard/rescue (similar to try/finally) Multijob Plugin Delivery Pipeline Plugin