SlideShare a Scribd company logo
1 of 77
Download to read offline
Orchestrating	Continuous	Delivery
D O C K E R 
 A N D 
 J E N K I N S .
 A L E X S O T O B 	 - 	 L O R D O F T H E J A R S . C O M
	alexsotob		lordofthejars
S O F T W A R E 
 I S 
 E A T I N G
T H E 
 W O R L D
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars

	alexsotob		lordofthejars

Faster
	alexsotob		lordofthejars

Faster
Sooner
	alexsotob		lordofthejars

Faster
Sooner
Better
	alexsotob		lordofthejars
K E Y 
 I S 
 A U T O M A T I O N
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
S P E E D 
 + 
 F R I C T I O N 
 = 
H E A T
	alexsotob		lordofthejars
G O 
 - 
 G O 
 - 
 G O
	alexsotob		lordofthejars
C O N T A I N E R S 
 C O D I F Y
O S 
 C O N F I G
	alexsotob		lordofthejars
	alexsotob		lordofthejars
$	docker	run	$	docker	run	--ti	ubuntuti	ubuntu::12.1012.10	bash	bash
[[a2ba2b]]	apt	apt--getget	update	update
[[a2ba2b]]	apt	apt--getget	install	curl	install	curl
[[a2ba2b]]	exit	exit
$	docker	commit	$	docker	commit	--m	m	"curl	installed""curl	installed"	a2b	username	a2b	username//imageimage
$	docker	build	$	docker	build	..
H O W 
 I 
 B U I L D 
 A 
 D O C K E R 
 I M A G E ?
	alexsotob		lordofthejars
J E N K I N S : 
 D O C K E R 
 A N D 
 C D
Docker
Hub
Notification:
triggers
downstream
jobs
when
a
tagged
container
is
pushed
to
Docker
Hub
	alexsotob		lordofthejars
J E N K I N S : 
 D O C K E R 
 A N D 
 C D
Docker
Hub
Notification:
triggers
downstream
jobs
when
a
tagged
container
is
pushed
to
Docker
Hub
Docker
Traceability:
identifies
which
build
pushed
a
particular
container,
displays
on
Jenkins
builds
page
	alexsotob		lordofthejars
J E N K I N S : 
 D O C K E R 
 A N D 
 C D
Docker
Hub
Notification:
triggers
downstream
jobs
when
a
tagged
container
is
pushed
to
Docker
Hub
Docker
Traceability:
identifies
which
build
pushed
a
particular
container,
displays
on
Jenkins
builds
page
Docker
Custom
Build
Environment:
specifies
customized
build
environments
as
Docker
containers
	alexsotob		lordofthejars
J E N K I N S : 
 D O C K E R 
 A N D 
 C D
Docker
Hub
Notification:
triggers
downstream
jobs
when
a
tagged
container
is
pushed
to
Docker
Hub
Docker
Traceability:
identifies
which
build
pushed
a
particular
container,
displays
on
Jenkins
builds
page
Docker
Custom
Build
Environment:
specifies
customized
build
environments
as
Docker
containers
Docker:
use
a
docker
host
to
dynamically
provision
a
slave,
run
a
single
build,
then
tear-down
	alexsotob		lordofthejars
J E N K I N S : 
 D O C K E R 
 A N D 
 C D
Docker
Hub
Notification:
triggers
downstream
jobs
when
a
tagged
container
is
pushed
to
Docker
Hub
Docker
Traceability:
identifies
which
build
pushed
a
particular
container,
displays
on
Jenkins
builds
page
Docker
Custom
Build
Environment:
specifies
customized
build
environments
as
Docker
containers
Docker:
use
a
docker
host
to
dynamically
provision
a
slave,
run
a
single
build,
then
tear-down
Build
and
Publish
:
builds
projects
that
have
a
Dockerfile
and
pushes
the
resultant
tagged
image
to
Docker
Hub
	alexsotob		lordofthejars
B U I L D , 
 T E S T , 
 & 
 D E P L O Y 
 D O C K E R 
 I M A G E
F R O M 
 J E N K I N S
	alexsotob		lordofthejars
D O C K E R 
 H U B 
 N O T I F I C A T I O N 
 P L U G I N
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
D O C K E R 
 T R A C E A B I L I T Y 
 P L U G I N
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
D O C K E R 
 P L U G I N
	alexsotob		lordofthejars
	alexsotob		lordofthejars
D O C K E R 
 C U S T O M 
 B U I L D 
 E N V I R O N M E N T
P L U G I N
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
B U I L D 
 A N D 
 P U B L I S H 
 P L U G I N
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
	alexsotob		lordofthejars
N O 
 M O R E 
B U I L D
J O B S / U P / D O W N S T R E A M S 
P L E A S E ! ! ! !
	alexsotob		lordofthejars
Continuous	Delivery	as	Code
P I P E L I N E 
 P L U G I N
	alexsotob		lordofthejars
F E A T U R E S 
 O F 
 P I P E L I N E 
 P L U G I N
Configuration
in
Source
Repositories
F E A T U R E S 
 O F 
 P I P E L I N E 
 P L U G I N
Configuration
in
Source
Repositories
Less
click-and-type,
more
code
F E A T U R E S 
 O F 
 P I P E L I N E 
 P L U G I N
Configuration
in
Source
Repositories
Less
click-and-type,
more
code
From
simple
to
complex
F E A T U R E S 
 O F 
 P I P E L I N E 
 P L U G I N
Configuration
in
Source
Repositories
Less
click-and-type,
more
code
From
simple
to
complex
Survives
Jenkins
restarts
&
connection
losses
($)
F E A T U R E S 
 O F 
 P I P E L I N E 
 P L U G I N
Configuration
in
Source
Repositories
Less
click-and-type,
more
code
From
simple
to
complex
Survives
Jenkins
restarts
&
connection
losses
($)
Reusable
Definitions
F E A T U R E S 
 O F 
 P I P E L I N E 
 P L U G I N
Configuration
in
Source
Repositories
Less
click-and-type,
more
code
From
simple
to
complex
Survives
Jenkins
restarts
&
connection
losses
($)
Reusable
Definitions
Build
history/trend
segregated
per
branches
F E A T U R E S 
 O F 
 P I P E L I N E 
 P L U G I N
Configuration
in
Source
Repositories
Less
click-and-type,
more
code
From
simple
to
complex
Survives
Jenkins
restarts
&
connection
losses
($)
Reusable
Definitions
Build
history/trend
segregated
per
branches
UI
($
->
OSS)
stage	stage	'compileAndUnit''compileAndUnit'
node	node	{{
								git	branch								git	branch::		'master''master',,	url	url::		'https://github.com/lordofthejars/starwars.git''https://github.com/lordofthejars/starwars.git'
								gradle									gradle	'clean	test''clean	test'
								stash	excludes								stash	excludes::		'build/''build/',,	includes	includes::		'**''**',,	name	name::		'source''source'
								stash	includes								stash	includes::	'build	'build//jacocojacoco/*.exec',	name:	'unitCodeCoverage'/*.exec',	name:	'unitCodeCoverage'
								step([$class:	'JUnitResultArchiver',	testResults:	'**/								step([$class:	'JUnitResultArchiver',	testResults:	'**/buildbuild//testtest--resultsresults//**..xml'xml']]))
}}
stage	stage	'codeQuality''codeQuality'
parallel	parallel	'pmd''pmd'		::		{{
				node					node	{{
								unstash									unstash	'source''source'
								gradle									gradle	'pmdMain''pmdMain'
																stepstep(([[$$classclass::		'PmdPublisher''PmdPublisher',,	pattern	pattern::		'build/reports/pmd/*.xml''build/reports/pmd/*.xml']]))
								}}
}},,		'jacoco''jacoco'::		{{
				node					node	{{
								unstash									unstash	'source''source'
								unstash									unstash	'unitCodeCoverage''unitCodeCoverage'
								gradle									gradle	'jacocoTestReport''jacocoTestReport'
								}}
}}
J E N K I N S F I L E 
 ( 1 / 3 )
	alexsotob		lordofthejars
stage	stage	'assemble-binaries''assemble-binaries'
nodenode(('linux''linux'))		{{
				unstash					unstash	'source''source'
								withEnvwithEnv(([["SOURCE_BUILD_NUMBER=${env.BUILD_NUMBER}""SOURCE_BUILD_NUMBER=${env.BUILD_NUMBER}"]]))		{{
								gradle									gradle	'assemble''assemble'
								}}
}}
input	messageinput	message::		"Deploy	Application	to	QA	?""Deploy	Application	to	QA	?"
stage	namestage	name::		'Deploy	to	QA''Deploy	to	QA',,	concurrency	concurrency::		11
node	node	{{
				echo					echo	"Application	Deployed	to	QA.""Application	Deployed	to	QA."
}}
J E N K I N S F I L E 
 ( 2 / 3 )
	alexsotob		lordofthejars
gradle	gradle	==	load		load	'jenkins/gradle.groovy''jenkins/gradle.groovy'
withCredentialswithCredentials(([[[[$$classclass::		'UsernamePasswordMultiBinding''UsernamePasswordMultiBinding',,		
																		credentialsId																		credentialsId::		'MyID''MyID',,	usernameVariable	usernameVariable::		'GIT_USERNAME''GIT_USERNAME',,		
																		passwordVariable																		passwordVariable::		'GIT_PASSWORD''GIT_PASSWORD']]]]))		{{
sh	sh	"git	tag	-a	some_tag	-m	'Jenkins'""git	tag	-a	some_tag	-m	'Jenkins'"
		sh			sh	"git	push	https://${env.GIT_USERNAME}:${env.GIT_PASSWORD}@	--tags""git	push	https://${env.GIT_USERNAME}:${env.GIT_PASSWORD}@	--tags"
}}
def	mvnHome	tool	def	mvnHome	tool	'Maven	3.3.3''Maven	3.3.3'
sh	sh	"${mvnHome}/bin/mvn	-B	verify""${mvnHome}/bin/mvn	-B	verify"
J E N K I N S F I L E 
 ( 3 / 3 )
	alexsotob		lordofthejars
D O C K E R 
 P I P E L I N E 
 I N T E G R A T I O N
dockerdocker..withRegistrywithRegistry(('https://lordofthejars-docker-continuous_delivery.bintray.io''https://lordofthejars-docker-continuous_delivery.bintray.io',,		'd4fc3fa9-39f7-47ea-a57c-795642f90989''d4fc3fa9-39f7-47ea-a57c-795642f90989'))		{{
				git					git	'git@github.com:lordofthejars/busybox.git''git@github.com:lordofthejars/busybox.git'		
				def	newApp					def	newApp	==	docker	docker..build	build	"lordofthejars-docker-continuous_delivery.bintray.io/lordofthejars/javatest:${env.BUILD_TAG}""lordofthejars-docker-continuous_delivery.bintray.io/lordofthejars/javatest:${env.BUILD_TAG}"
				newApp				newApp..pushpush(())
}}
dockerdocker..imageimage(('lordofthejars/javatest''lordofthejars/javatest'))..withRun	withRun	{{c	c	-->>
		sh			sh	'./executeTests.sh''./executeTests.sh'
}}
J E N K I N S F I L E 
 ( 1 / 2 )
	alexsotob		lordofthejars
dockerdocker..imageimage(('maven:3.3.3-jdk-8''maven:3.3.3-jdk-8'))..insideinside(('-v	~/.m2/repository:/m2repo	-u	1000:50''-v	~/.m2/repository:/m2repo	-u	1000:50'))		{{
		git			git	'…your-sources…''…your-sources…'
		sh			sh	'mvn	-Dmaven.repo.local=/m2repo	clean	install''mvn	-Dmaven.repo.local=/m2repo	clean	install'
}}
dockerdocker..withServerwithServer(('tcp://swarm.mycorp.com:2376''tcp://swarm.mycorp.com:2376',,		'swarm-certs''swarm-certs'))		{{
		docker		docker..imageimage(('httpd''httpd'))..withRunwithRun(('-p	8080:80''-p	8080:80'))		{{c	c	-->>
				sh					sh	"curl	-i	http://${hostIp(c)}:8080/""curl	-i	http://${hostIp(c)}:8080/"
				}}
}}
def	def	hostIphostIp((containercontainer))		{{
		sh			sh	"docker	inspect	-f	{{.Node.Ip}}	${container.id}	>	hostIp""docker	inspect	-f	{{.Node.Ip}}	${container.id}	>	hostIp"
				readFilereadFile(('hostIp''hostIp'))..trimtrim(())
}}
J E N K I N S F I L E 
 ( 2 / 2 )
	alexsotob		lordofthejars
	alexsotob		lordofthejars
D I F F E R E N T 
 W A Y S 
 O F 
 D O I N G 
 S A M E
T H I N G S 
 W I T H 
D S L
	alexsotob		lordofthejars
S I M P L E 
 B U I L D 
 F O R 
 P I P E L I N E 
 P L U G I N
	alexsotob		lordofthejars
simpleBuild	simpleBuild	{{
		machine			machine	==		"hi-speed""hi-speed"
		docker			docker	==		"java:1.9""java:1.9"
				
		env			env	==		[[
				FOO					FOO	::		4242,,
				BAR					BAR	::		"YASS""YASS"
				]]
				
		git_repo			git_repo	==		"https://github.com/cloudbeers/PR-demo""https://github.com/cloudbeers/PR-demo"
				
		before_script			before_script	==		"echo	before""echo	before"
		script			script	==		'echo	after	$FOO''echo	after	$FOO'
		after_script			after_script	==		'echo	done	now''echo	done	now'
				
		notifications			notifications	==		[[
				email					email	::		"foo@bar.com""foo@bar.com"
				]]
}}
J E N K I N S F I L E
	alexsotob		lordofthejars
L E T ' S 
 W I N D 

D O W N
	alexsotob		lordofthejars
C O N C L U S I O N S
Automation
is
the
Key
	alexsotob		lordofthejars
C O N C L U S I O N S
Automation
is
the
Key
Docker
Simplifies
Environment
Problems
	alexsotob		lordofthejars
C O N C L U S I O N S
Automation
is
the
Key
Docker
Simplifies
Environment
Problems
Jenkins
is
Ready
For
Docker
and
CD
	alexsotob		lordofthejars
C O N C L U S I O N S
Automation
is
the
Key
Docker
Simplifies
Environment
Problems
Jenkins
is
Ready
For
Docker
and
CD
Pipleline
as
Code
gives
you
Freedom
	alexsotob		lordofthejars
O N L Y 
 O N E 
 P I E C E 
 O F 
 T H E 
 J I G S A W
	alexsotob		lordofthejars
F O L L O W 
 T H E 
 R U L E S , 
 A D A P T 
 T O 
 Y O U R
N E E D S
	alexsotob		lordofthejars

C L O U D B E E S
J E N K I N S
It	is	not	necessary	to	change.	
Survival	is	not	mandatory.
W . 
 E D W A R D S 
 D E M I N G
	alexsotob		lordofthejars
Q U E S T I O N S
	alexsotob		lordofthejars

http://www.slideshare.net/asotobu/jenkins-docker

asotobu@gmail.com
	alexsotob		lordofthejars
https://github.com/lordofthejars/starwars
https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Plugin
https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Pipeline+Plugin
https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Traceability
https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Build+and+Publish+plugin
https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Hub+Notification
https://wiki.jenkins-ci.org/display/JENKINS/Docker+Plugin
https://github.com/jenkinsci/simple-build-for-pipeline-plugin

More Related Content

What's hot

What Is Docker? | What Is Docker And How It Works? | Docker Tutorial For Begi...
What Is Docker? | What Is Docker And How It Works? | Docker Tutorial For Begi...What Is Docker? | What Is Docker And How It Works? | Docker Tutorial For Begi...
What Is Docker? | What Is Docker And How It Works? | Docker Tutorial For Begi...
Simplilearn
 
Linux Practical Manual
Linux Practical ManualLinux Practical Manual
Linux Practical Manual
jorge
 

What's hot (20)

OpenStack DevStack Configuration localrc local.conf Tutorial
OpenStack DevStack Configuration localrc local.conf TutorialOpenStack DevStack Configuration localrc local.conf Tutorial
OpenStack DevStack Configuration localrc local.conf Tutorial
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
 
Dockerfile
Dockerfile Dockerfile
Dockerfile
 
초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문초심자를 위한 도커 소개 및 입문
초심자를 위한 도커 소개 및 입문
 
What Is Docker? | What Is Docker And How It Works? | Docker Tutorial For Begi...
What Is Docker? | What Is Docker And How It Works? | Docker Tutorial For Begi...What Is Docker? | What Is Docker And How It Works? | Docker Tutorial For Begi...
What Is Docker? | What Is Docker And How It Works? | Docker Tutorial For Begi...
 
Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...
 
Fastlane
FastlaneFastlane
Fastlane
 
Java 102
Java 102Java 102
Java 102
 
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)New Symfony Tips & Tricks (SymfonyCon Paris 2015)
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
 
Getting started with Jenkins
Getting started with JenkinsGetting started with Jenkins
Getting started with Jenkins
 
Getting Started With Linux Administration
Getting Started With Linux AdministrationGetting Started With Linux Administration
Getting Started With Linux Administration
 
파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310
 
Semantic similarity between two sentences in arabic
Semantic similarity between two sentences in arabicSemantic similarity between two sentences in arabic
Semantic similarity between two sentences in arabic
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Java basic introduction
Java basic introductionJava basic introduction
Java basic introduction
 
Deployment of xlwings-powered spreadsheets (webinar)
Deployment of xlwings-powered spreadsheets (webinar)Deployment of xlwings-powered spreadsheets (webinar)
Deployment of xlwings-powered spreadsheets (webinar)
 
Introduzione a Docker
Introduzione a DockerIntroduzione a Docker
Introduzione a Docker
 
Docker intro
Docker introDocker intro
Docker intro
 
Linux Practical Manual
Linux Practical ManualLinux Practical Manual
Linux Practical Manual
 
Dev Containers Spring 2023.pptx
Dev Containers Spring 2023.pptxDev Containers Spring 2023.pptx
Dev Containers Spring 2023.pptx
 

Viewers also liked

Master Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins PlatformMaster Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins Platform
dcjuengst
 
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and ComposeDockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
Docker, Inc.
 

Viewers also liked (20)

Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
 
Game of Codes: the Battle for CI
Game of Codes: the Battle for CIGame of Codes: the Battle for CI
Game of Codes: the Battle for CI
 
Master Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins PlatformMaster Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins Platform
 
Ic maven jenkins_sonar
Ic maven jenkins_sonarIc maven jenkins_sonar
Ic maven jenkins_sonar
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introduction
 
GitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLabGitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLab
 
Dockercon2015 bamboo
Dockercon2015 bambooDockercon2015 bamboo
Dockercon2015 bamboo
 
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your DevelopmentRise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
 
Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)
 
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and ComposeDockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTree
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
 
Introduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guideIntroduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guide
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
DevOps and Continuous Delivery reference architectures for Docker
DevOps and Continuous Delivery reference architectures for DockerDevOps and Continuous Delivery reference architectures for Docker
DevOps and Continuous Delivery reference architectures for Docker
 
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
 
Using Docker For Testing Legacy Code
Using Docker For Testing Legacy CodeUsing Docker For Testing Legacy Code
Using Docker For Testing Legacy Code
 
Deploy With Confidence
Deploy With ConfidenceDeploy With Confidence
Deploy With Confidence
 

Similar to Jenkins Docker

Alfresco in few points - Search Tutorial
Alfresco in few points - Search TutorialAlfresco in few points - Search Tutorial
Alfresco in few points - Search Tutorial
PASCAL Jean Marie
 
Upgrade 11.2.0.1 rac db to 11.2.0.2 in linux
Upgrade 11.2.0.1 rac db to 11.2.0.2 in linuxUpgrade 11.2.0.1 rac db to 11.2.0.2 in linux
Upgrade 11.2.0.1 rac db to 11.2.0.2 in linux
maclean liu
 

Similar to Jenkins Docker (20)

Jenkins 20
Jenkins 20Jenkins 20
Jenkins 20
 
Docker Testing
Docker TestingDocker Testing
Docker Testing
 
Svelte (adjective): Attractively thin, graceful, and stylish
Svelte (adjective): Attractively thin, graceful, and stylishSvelte (adjective): Attractively thin, graceful, and stylish
Svelte (adjective): Attractively thin, graceful, and stylish
 
MOUG17: Visualizing Air Traffic with Oracle APEX and Raspberry PI
MOUG17: Visualizing Air Traffic with Oracle APEX and Raspberry PIMOUG17: Visualizing Air Traffic with Oracle APEX and Raspberry PI
MOUG17: Visualizing Air Traffic with Oracle APEX and Raspberry PI
 
MongoDB Europe 2016 - Using MongoDB to Build a Fast and Scalable Content Repo...
MongoDB Europe 2016 - Using MongoDB to Build a Fast and Scalable Content Repo...MongoDB Europe 2016 - Using MongoDB to Build a Fast and Scalable Content Repo...
MongoDB Europe 2016 - Using MongoDB to Build a Fast and Scalable Content Repo...
 
An introduction to the MicroProfile
An introduction to the MicroProfileAn introduction to the MicroProfile
An introduction to the MicroProfile
 
Continuous Delivery As Code
Continuous Delivery As CodeContinuous Delivery As Code
Continuous Delivery As Code
 
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
JDD 2016 - Bartosz Majsak - Meet The Assertable Chaos Monkeys
 
Building and Distributing PostgreSQL Extensions Without Learning C
Building and Distributing PostgreSQL Extensions Without Learning CBuilding and Distributing PostgreSQL Extensions Without Learning C
Building and Distributing PostgreSQL Extensions Without Learning C
 
Mocks, Stubs and Fakes. ¿What Else?
Mocks, Stubs and Fakes. ¿What Else?Mocks, Stubs and Fakes. ¿What Else?
Mocks, Stubs and Fakes. ¿What Else?
 
An Introduction to React -- FED Date -- IBM Design
An Introduction to React -- FED Date -- IBM DesignAn Introduction to React -- FED Date -- IBM Design
An Introduction to React -- FED Date -- IBM Design
 
Alfresco in few points - Search Tutorial
Alfresco in few points - Search TutorialAlfresco in few points - Search Tutorial
Alfresco in few points - Search Tutorial
 
Your code is not a string
Your code is not a stringYour code is not a string
Your code is not a string
 
Voxxed Banff 2018 : Containers & Integration tests
Voxxed Banff 2018 : Containers & Integration testsVoxxed Banff 2018 : Containers & Integration tests
Voxxed Banff 2018 : Containers & Integration tests
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
Meteor - not just for rockstars
Meteor - not just for rockstarsMeteor - not just for rockstars
Meteor - not just for rockstars
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Docker
 
Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola Paolucci
 
Upgrade 11.2.0.1 rac db to 11.2.0.2 in linux
Upgrade 11.2.0.1 rac db to 11.2.0.2 in linuxUpgrade 11.2.0.1 rac db to 11.2.0.2 in linux
Upgrade 11.2.0.1 rac db to 11.2.0.2 in linux
 
Keg.io
Keg.ioKeg.io
Keg.io
 

More from Alex Soto

More from Alex Soto (20)

Kubernetes Native Java
Kubernetes Native JavaKubernetes Native Java
Kubernetes Native Java
 
Reactive Programming for Real Use Cases
Reactive Programming for Real Use CasesReactive Programming for Real Use Cases
Reactive Programming for Real Use Cases
 
Chaos Engineering Kubernetes
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering Kubernetes
 
Chaos Engineering Kubernetes
Chaos Engineering KubernetesChaos Engineering Kubernetes
Chaos Engineering Kubernetes
 
Microservices testing and automation
Microservices testing and automationMicroservices testing and automation
Microservices testing and automation
 
Testing in Production: From DevTestOops to DevTestOps
Testing in Production: From DevTestOops to DevTestOpsTesting in Production: From DevTestOops to DevTestOps
Testing in Production: From DevTestOops to DevTestOps
 
Supersonic Subatomic Java
Supersonic Subatomic JavaSupersonic Subatomic Java
Supersonic Subatomic Java
 
From DevTestOops to DevTestOps
From DevTestOops to DevTestOpsFrom DevTestOops to DevTestOps
From DevTestOops to DevTestOps
 
Istio service mesh & pragmatic microservices architecture
Istio service mesh & pragmatic microservices architectureIstio service mesh & pragmatic microservices architecture
Istio service mesh & pragmatic microservices architecture
 
Zero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraZero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices era
 
Service Mesh Patterns
Service Mesh PatternsService Mesh Patterns
Service Mesh Patterns
 
Supersonic, Subatomic Java
Supersonic, Subatomic JavaSupersonic, Subatomic Java
Supersonic, Subatomic Java
 
Zero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices eraZero Downtime Deployment in Microservices era
Zero Downtime Deployment in Microservices era
 
Long Live and Prosper To Monolith
Long Live and Prosper To MonolithLong Live and Prosper To Monolith
Long Live and Prosper To Monolith
 
Sail in the cloud - An intro to Istio commit
Sail in the cloud - An intro to Istio commitSail in the cloud - An intro to Istio commit
Sail in the cloud - An intro to Istio commit
 
KubeBoot - Spring Boot deployment on Kubernetes
KubeBoot - Spring Boot deployment on KubernetesKubeBoot - Spring Boot deployment on Kubernetes
KubeBoot - Spring Boot deployment on Kubernetes
 
Sail in the Cloud - An intro to Istio
Sail in the Cloud  - An intro to IstioSail in the Cloud  - An intro to Istio
Sail in the Cloud - An intro to Istio
 
Testing XXIst Century
Testing XXIst CenturyTesting XXIst Century
Testing XXIst Century
 
Arquillian Constellation
Arquillian ConstellationArquillian Constellation
Arquillian Constellation
 
Testing for Unicorns
Testing for UnicornsTesting for Unicorns
Testing for Unicorns
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Jenkins Docker