Install Docker on Jenkins container
$ docker exec -it -u root jenkins sh
$ curl https://get.docker.com | sh
Jenkins and Docker Daemon
Cannot run Container inside Container
Mount docker.sock
from Host to Jenkins container
Will spawn sibling containers
$ chmod 666 /var/run/docker.sock
$ docker run -v /var/run/docker.sock:/var/run/docker.sock ...
$ docker pull openjdk:8-jdk
$ docker pull maven:3-jdk-8
$ docker pull golang:1.7
$ docker pull python:3
pipeline {
agent { docker ' python:3.7.5' }
stages {
stage(' build' ) {
steps {
sh ' python --version'
}
}
}
}
pipeline {
agent {
docker {
image ' maven:3-alpine'
label ' my-defined-label'
args ' -v /home/jenkins/.m2:/home/jenkins/.m2'
}
}
stages {
stage(' Build' ) {
steps {
sh ' /bin/echo "Building..."'
}
}
}
}
pipeline {
agent none
stages {
stage(' Build' ) {
agent { docker ' maven:3-alpine' }
steps {
sh ' mvn --version'
}
}
stage(' Test' ) {
agent { docker ' openjdk:8-jre' }
steps {
sh ' java -version'
}
}
}
}
Skonfiguruj zadanie aby uruchamiało kontener
Zadanie ma provisionować konfigurację wewnątrz kontenera
Zadanie ma uruchamiać build wewnątrz kontenera
Zadanie ma niszczyć kontener po buildze