SlideShare a Scribd company logo
1 of 61
Download to read offline
©
2015
CloudBees,
Inc.
All
Rights
Reserved
© 2016 CloudBees, Inc. All Rights Reserved
CI/CD Pipeline-as-code with Jenkins
and Docker
June 15, 2016
Kishore Bhatia
@bhatiakishore
©
2015
CloudBees,
Inc.
All
Rights
Reserved
vs.
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Docker Has Potential
• An example: Software Configuration Management Space
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Docker Has Potential
• An example: Software Configuration Management Space
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Docker Has Potential
• An example: Software Configuration Management Space
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Docker Has Potential
• An example: Software Configuration Management Space
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Docker Has Potential
• An example: Software Configuration Management Space
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Docker Has Potential
• An example: Software Configuration Management Space
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Docker has potential… to reduce friction
• An example: Software Configuration Management Space
Docker has the Potential to
Reduce DevOps Friction
©
2015
CloudBees,
Inc.
All
Rights
Reserved
How Can You Use Jenkins & Docker Together?
+
©
2015
CloudBees,
Inc.
All
Rights
Reserved
How Can You Use Jenkins & Docker Together?
1. Run Jenkins Masters & Slaves in Docker 2. Build, Test, & Deploy Docker Images from Jenkins
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Oh, by the way…
“First let me take a chance to familiarize you
with how we test Docker… We use Jenkins as
our CI mostly because we needed a lot of
flexibility and control.”
“Obviously everything in our infrastructure
runs in Docker, so that even goes for Jenkins.
We use the official image for our Jenkins
container.”
https://blog.jessfraz.com/post/dogfooding-docker-to-test-docker/
©
2015
CloudBees,
Inc.
All
Rights
Reserved
© 2016 CloudBees, Inc. All Rights Reserved
Feature Walkthrough
©
2015
CloudBees,
Inc.
All
Rights
Reserved
1. Run Jenkins Masters & Slaves in Docker
Docker (Cloud) – use Docker images
as standardized build environments
to improve isolation and elasticity
Docker Custom Build Environment –
specify customized build
environments as Docker containers
CloudBees Docker Shared
Config – manage Docker (or Swarm)
host configuration centrally in
CloudBees Jenkins Operations
Center
©
2015
CloudBees,
Inc.
All
Rights
Reserved
1. Run Jenkins Masters & Slaves in Docker
Docker (Cloud) – use Docker images
as standardized build environments
to improve isolation and elasticity
Docker Custom Build Environment –
specify customized build
environments as Docker containers
CloudBees Docker Shared
Config – manage Docker (or Swarm)
host configuration centrally in
CloudBees Jenkins Operations
Center
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Docker Images
Official Docker Images at
https://hub.docker.com/_/jenkins/
for:
• Jenkins OSS Master
CloudBees Images
https://hub.docker.com/u/
cloudbees/
• CJP Master
• CJP Operations Center
docker run –p 8080:8080 –v /your/
home:/var/jenkins_home jenkins
Community Slave Images
16
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Custom Build Environment
17
• Ensure reproducible environment
• Clean Room
• Isolated
• Faster than a VM to launch
• Mounts the workspace to the
container – easy to share artifacts
• Secure access to Docker Host and
Private Registry
Use a specific image
©
2015
CloudBees,
Inc.
All
Rights
Reserved
CloudBees Docker Shared Config
18
• Push docker host configuration to all
masters in cluster
• Define images and slave labels
centrally
• Supports Docker Swarm
©
2015
CloudBees,
Inc.
All
Rights
Reserved
A word on Volumes
Custom Build Env mounts:
• workspaceDir
• Tool
• Tmp
Consider mounting a /data
volume for the mvn repo,
ie /data/.m2repo
from the slave, and also,
from the Docker Host.
19
Docker Host
Container-1
Container-2
Container-3
Docker-slave-1
Java8-1
/data
-v /data:/data
-v /data:/data
-v /{workspace}:/
{workspace}
-v /{tools}:/{tools}
-v /tmp:/tmp
©
2015
CloudBees,
Inc.
All
Rights
Reserved
2. Build, Test, & Deploy Docker Images from Jenkins
Build and Publish – build projects
that have a Dockerfile and push
the resultant tagged image to
Docker Hub
Docker Traceability – identify
which build pushed a particular
container that and displays the
build / image details in Jenkins
Docker Hub Notification – trigger
downstream jobs when a tagged
container is pushed to Docker
Hub
©
2015
CloudBees,
Inc.
All
Rights
Reserved
2. Build, Test, & Deploy Docker Images from Jenkins
Build and Publish – build projects
that have a Dockerfile and push
the resultant tagged image to
Docker Hub
Docker Traceability – identify
which build pushed a particular
container that and displays the
build / image details in Jenkins
Docker Hub Notification – trigger
downstream jobs when a tagged
container is pushed to Docker
Hub
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Build and Publish
22
Build and
Test App
Build and
Publish Image
Deploy Image Test Image
• SCM Checkout
• mvn package
• Archive war
• Retrieve war
• docker build
• docker tag
• docker push
• docker pull
• register event
• docker run
• Cucumber
Build projects that have a Dockerfile and push the resultant tagged image
to Docker Hub
war img
©
2015
CloudBees,
Inc.
All
Rights
Reserved
A typical job set up
23
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Build and Publish – Step 1: Build the app artifact
• Regular job configuration (can use Docker Custom Build Env)
• Eg: maven clean package
• Publish the resultant artifacts with a Post-build Action:
24
Published ArHfacts
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Build and Publish – Step 2: Build the Docker Image
This job will do two things:
– Retrieve the artifacts we need as input
o Jar
o Dockerfile
– Invoke the Docker utilities to
o Build the image
o Tag
o Publish
25
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Obtain the artifacts
26
Upstream project
List the arHfacts
©
2015
CloudBees,
Inc.
All
Rights
Reserved
The Dockerfile
27
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Invoke Docker
28
28
IdenHfy the image
Bind to the Docker host
Bind to the Docker registry
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Tagged Image in Docker Hub
29
Tagged Version
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Traceability
30
Identify which build pushed a particular
container and display the build / image
details in Jenkins
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Traceability
• Builds on existing Jenkins artifact traceability
• Allows the tracking of the creation and use of Docker containers in
Jenkins and their future use.
• Combine with artifact fingerprinting for a comprehensive solution
• Each Build shows the image fingerprints created
31
Image fingerprints
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Traceability – registering events
• Jenkins can track actions against this image such as:
– Creating a container
– Container events such as start/stop
• To achieve this, it is necessary to call the Traceability API – see
$(JENKINS_URL)/docker-traceability/api/
• There are two endpoints to submit events to:
32
/docker-traceability/
submitContainerStatus
Allows to submit the current container status snapshot
with a minimal set of parameters. Outputs of docker
inspect $(containerId) can be directly submiRed to
Jenkins server using this command.
/docker-traceability/
submitReport
Submits a report using the extended JSON API. This
endpoint can be used by scripts to submit the full
available info about the container and its environment in
a single command.
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Traceability – registering events - example
This a Shell build step:
33
docker run -it --cidfile="$$" -d harniman/mobile-deposit-api:$tag
output=`cat $$` // Captures the Container ID
curl http://{user}:{token}@{jenkins_url}/docker-traceability/
submitContainerStatus --data-urlencode status=deployed --data-
urlencode inspectData="$(docker inspect $output)" --data-urlencode
environment=$Environment --data-urlencode hostName={docker host} --
data-urlencode imageName=harniman/mobile-deposit-api:$tag
docker stop $output
curl http://{user}:{token}@{jenkins_url}/docker-traceability/
submitContainerStatus --data-urlencode status=stopped --data-
urlencode inspectData="$(docker inspect $output)" --data-urlencode
environment=$Environment --data-urlencode hostName={docker host} --
data-urlencode imageName=harniman/mobile-deposit-api:$tag
Spin up container
NoHfy Jenkins
Stop Container
NoHfy Jenkins
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Docker Traceability View
34
Docker Traceability
Container
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Container Use View
35
Deployment Events
Link to Build
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Traceability in Action
Problem: We are running tests and there is a problem I need to fix – how
do I find the related source?
Follow this logical sequence:
1. Running Container -> Image
2. Image -> Image Build Job
3. Image Build Job -> Application Version
4. Application Version -> Application Build
5. Application Build -> Application Source
36
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Traceability – From Container to Image Build
37
Link to Image Build
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Traceability – Image Build Job
38
Fingerprints
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Traceability – Image Build Job - Fingerprints
39
The builds that
provided the arHfacts
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Traceability – Application Build
40
Change Details
SCM Commit
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Notification
41
Trigger downstream jobs when a tagged
container is pushed to Docker Hub
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Docker Hub Notification
Trigger downstream jobs when a tagged container is pushed to Docker Hub
The Docker Hub Notification Trigger plugin lets you configure Jenkins to
trigger builds when an image is pushed to Docker Hub. E.g. to run
verification for the container.
What are the steps
• Set up a WebHook Account for Notification
• Set up your Docker Registry to make callbacks on Image events
• Set up your builds
42
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Docker Hub Notification – Docker Registry Webhook
43
In the format:
http://<user>:<token>@<jenkins_url>/dockerhub-webhook/notify
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Docker Hub Notification – Job Set up
44
Configure Trigger
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Best of All: Jenkins Pipeline + Docker
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Pipeline Stages
46
Build and
Unit Test
App
Test
Docker
Image
Publish
Docker
Image
SCM Checkout
mvn package
mvn sonar:sonar
mvn verify
docker build
docker tag
docker run
notify
cucumber
war img
Sonar
Analysis
Prepare
Release
Build
Docker
Image
Int Test
docker push
image.inside withServer
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Build, unit test and package
47
Build and
Unit Test
App
Test
Docker
Image
Publish
Docker
Image
SCM Checkout
mvn package
mvn sonar:sonar
mvn verify
docker build
docker tag
docker run
notify
cucumber
war img
Sonar
Analysis
Prepare
Release
Build
Docker
Image
Int Test
docker push
image.inside withServer
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Build, unit test and package
stage 'Build App’
node('docker') {
docker.image(‘maven:3.3.3-jdk-8’).inside(‘-v /data:/data’ {
mkdir –p /data/mvn
writeFile file: 'settings.xml', text: ”(………)”
git 'https://github.com/cloudbees/mobile-deposit-api.git’
sh 'mvn –s settings.xml clean package’
…
}
}
Specify the Stage Name
Specify the slave label
Custom Build Env Mount volume from slave
.m2 repo locaHon
co and build
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Defining a Docker Slave
Specify Image as template
Assign labels
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Test the app
50
Build and
Unit Test
App
Test
Docker
Image
Publish
Docker
Image
SCM Checkout
mvn package
mvn sonar:sonar
mvn verify
docker build
docker tag
docker run
notify
cucumber
war img
Sonar
Analysis
Prepare
Release
Build
Docker
Image
Int Test
docker push
image.inside withServer
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Test the app
node('docker') {
docker.image(‘maven:3.3.3-jdk-8’).inside(‘-v /data:/data’ {
…
stage 'Sonar analysis’
sh 'mvn -s settings.xml sonar:sonar’
stage 'Integration-test’
sh 'mvn -s settings.xml verify’
step([$class: 'JUnitResultArchiver', testResults: '**/
target/surefire-reports/TEST-*.xml'])
}
}
In same env as build
Sonar tests
Run API Tests
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Build, test and publish Docker image
52
Build and
Unit Test
App
Test
Docker
Image
Publish
Docker
Image
SCM Checkout
mvn package
mvn sonar:sonar
mvn verify
docker build
docker Tag
docker run
notify
cucumber
war img
Sonar
Analysis
Prepare
Release
Build
Docker
Image
Int Test
docker push
image.inside withServer
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Build, test and publish Docker image
docker.withServer('tcp://192.168.99.100:2376', 'slave-docker-us-
east-1-tls'){
stage 'Build Docker image’
def mobileDepositApiImage
dir('.docker') {
sh "mv ../target/*-SNAPSHOT.jar mobile-deposit-api.jar”
mobileDepositApiImage = docker.build "harniman/
mobile-deposit-api:${buildVersion}”
}
…
Bind to docker host
Change directory
Build docker image
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Build, test and publish Docker image
…
stage 'Test Docker image’
container=mobileDepositApiImage.run("--name mobile-deposit-
api -p 8080:8080”)
sh "curl http://<user>:<token>@<host>:8080/docker-
traceability/submitContainerStatus ......
// insert cucumber tests here
stage 'Publish Docker image’
withDockerRegistry(registry: [credentialsId: 'dockerhub-
harniman']) {
mobileDepositApiImage.push()
}
}
Launch container
Bind to registry
Push image
Submit traceability report
Run some Tests
©
2015
CloudBees,
Inc.
All
Rights
Reserved
55
Tagged Version
a
Tagged Image in Docker Hub
a
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Best of All: Jenkins Pipeline + Docker
stage 'Build Source'
node('docker') {
docker.image(‘maven:3.3.3-jdk-8') {
git 'https://github.com/cloudbees/mobile-deposit-api.git'
sh 'mvn clean package'
}
}
node('docker') {
docker.withServer('tcp://docker.beedemo.net:2376', 'docker-beedemo-creds'){
stage 'Build Docker Image'
def image = docker.build "cloudbees/mobile-deposit-api:${buildVersion}"
stage 'Publish Docker Image'
docker.withRegistry('https://registry.beedemo.net/', 'docker-registry-login') {
image.push()
}
stage 'Deploy Docker Image'
def container = image.run('--name mobile-deposit-api -p 8080:8080')
}
}
©
2015
CloudBees,
Inc.
All
Rights
Reserved
OSS - Pipeline-as-Code Jenkinsfile
● Define complete Workflow within Code
● Edit Workflow Job in IDE
● Workflow Job automatically incorporates changes
● Version Workflow Jobs
● Supports: Git, Mercurial, SVN
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Jenkins, with Pipeline, is the Proven CD Platform
Developer
Source
Code
Control
System
Compile
/Build
Code
Scan Tests
Code
Commit
Results
Report
Build
Commit Test Stage Deploy
Deploy
Prod
Deploy
Stage
Complex Delivery Pipelines
Delivery of App and Config
Jenkins Pipeline
Prod
Dev
©
2015
CloudBees,
Inc.
All
Rights
Reserved
© 2016 CloudBees, Inc. All Rights Reserved
Jenkins World 2016
Learn more and register now!
www.jenkinsworld.com
The event for everything Jenkins:
community, CloudBees and ecosystem.
• Santa Clara Convention Center
• September 13-15, 2016
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Resources
● @BhatiaKishore
● Github: https://github.com/kishorebhatia
● Mobile-deposit-api example:
https://github.com/NewGithubOrg/mobile-deposit-api
● Jenkins BlueOcean: https://jenkins.io/projects/blueocean/
● Jenkins Pipeline-as-code: https://jenkins.io/doc/pipeline/
©
2015
CloudBees,
Inc.
All
Rights
Reserved
Thank You!

More Related Content

Similar to Cicd.pdf

Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT CampusAjeet Singh Raina
 
Beginners Guide to Kontena
Beginners Guide to KontenaBeginners Guide to Kontena
Beginners Guide to KontenaLauri Nevala
 
Beginners Guide To Kontena
Beginners Guide To KontenaBeginners Guide To Kontena
Beginners Guide To KontenaKontena, Inc.
 
Docker OpenStack Cloud Foundry
Docker OpenStack Cloud FoundryDocker OpenStack Cloud Foundry
Docker OpenStack Cloud FoundryAnimesh Singh
 
Rome .NET Conference 2024 - Remote Conference
Rome .NET Conference 2024  - Remote ConferenceRome .NET Conference 2024  - Remote Conference
Rome .NET Conference 2024 - Remote ConferenceHamida Rebai Trabelsi
 
Docker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker for .NET Developers - Michele Leroux Bustamante, SollianceDocker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker for .NET Developers - Michele Leroux Bustamante, SollianceDocker, Inc.
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with dockerMichelle Liu
 
Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016Patrick Chanezon
 
Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016Patrick Chanezon
 
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Radulescu Adina-Valentina
 
IBM Container Service Overview
IBM Container Service OverviewIBM Container Service Overview
IBM Container Service OverviewKyle Brown
 
Docker and Jenkins [as code]
Docker and Jenkins [as code]Docker and Jenkins [as code]
Docker and Jenkins [as code]Mark Waite
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataInfluxData
 
Dockerizing Ruby Applications - The Best Practices
Dockerizing Ruby Applications - The Best PracticesDockerizing Ruby Applications - The Best Practices
Dockerizing Ruby Applications - The Best PracticesKontena, Inc.
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationGiacomo Vacca
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Simplilearn
 
Containerizing a Web Application with Vue.js and Java
Containerizing a Web Application with Vue.js and JavaContainerizing a Web Application with Vue.js and Java
Containerizing a Web Application with Vue.js and JavaJadson Santos
 
Docker for developers z java
Docker for developers z javaDocker for developers z java
Docker for developers z javaandrzejsydor
 
Experts Live Europe 2017 - Why you should care about Docker - an introduction
Experts Live Europe 2017 - Why you should care about Docker - an introductionExperts Live Europe 2017 - Why you should care about Docker - an introduction
Experts Live Europe 2017 - Why you should care about Docker - an introductionMarc Müller
 

Similar to Cicd.pdf (20)

Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Beginners Guide to Kontena
Beginners Guide to KontenaBeginners Guide to Kontena
Beginners Guide to Kontena
 
Beginners Guide To Kontena
Beginners Guide To KontenaBeginners Guide To Kontena
Beginners Guide To Kontena
 
Docker OpenStack Cloud Foundry
Docker OpenStack Cloud FoundryDocker OpenStack Cloud Foundry
Docker OpenStack Cloud Foundry
 
Rome .NET Conference 2024 - Remote Conference
Rome .NET Conference 2024  - Remote ConferenceRome .NET Conference 2024  - Remote Conference
Rome .NET Conference 2024 - Remote Conference
 
Docker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker for .NET Developers - Michele Leroux Bustamante, SollianceDocker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker for .NET Developers - Michele Leroux Bustamante, Solliance
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with docker
 
Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016Docker Container As A Service - Mix-IT 2016
Docker Container As A Service - Mix-IT 2016
 
0507 057 01 98 * Adana Klima Tamir Servisi
0507 057 01 98 * Adana Klima Tamir Servisi0507 057 01 98 * Adana Klima Tamir Servisi
0507 057 01 98 * Adana Klima Tamir Servisi
 
Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016Docker Container As A Service - JAX 2016
Docker Container As A Service - JAX 2016
 
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
 
IBM Container Service Overview
IBM Container Service OverviewIBM Container Service Overview
IBM Container Service Overview
 
Docker and Jenkins [as code]
Docker and Jenkins [as code]Docker and Jenkins [as code]
Docker and Jenkins [as code]
 
Introduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxDataIntroduction to Docker and Monitoring with InfluxData
Introduction to Docker and Monitoring with InfluxData
 
Dockerizing Ruby Applications - The Best Practices
Dockerizing Ruby Applications - The Best PracticesDockerizing Ruby Applications - The Best Practices
Dockerizing Ruby Applications - The Best Practices
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
Docker Tutorial For Beginners | What Is Docker And How It Works? | Docker Tut...
 
Containerizing a Web Application with Vue.js and Java
Containerizing a Web Application with Vue.js and JavaContainerizing a Web Application with Vue.js and Java
Containerizing a Web Application with Vue.js and Java
 
Docker for developers z java
Docker for developers z javaDocker for developers z java
Docker for developers z java
 
Experts Live Europe 2017 - Why you should care about Docker - an introduction
Experts Live Europe 2017 - Why you should care about Docker - an introductionExperts Live Europe 2017 - Why you should care about Docker - an introduction
Experts Live Europe 2017 - Why you should care about Docker - an introduction
 

Recently uploaded

Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
EduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AIEduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AIkoyaldeepu123
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
DATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage exampleDATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage examplePragyanshuParadkar1
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Effects of rheological properties on mixing
Effects of rheological properties on mixingEffects of rheological properties on mixing
Effects of rheological properties on mixingviprabot1
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 

Recently uploaded (20)

Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
EduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AIEduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AI
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
DATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage exampleDATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage example
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Effects of rheological properties on mixing
Effects of rheological properties on mixingEffects of rheological properties on mixing
Effects of rheological properties on mixing
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 

Cicd.pdf