Skip to content

Latest commit

 

History

History
118 lines (94 loc) · 2.38 KB

agent-docker.rst

File metadata and controls

118 lines (94 loc) · 2.38 KB

Agent Docker

Set-up Environment

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 ...

Using docker

$ docker pull openjdk:8-jdk
$ docker pull maven:3-jdk-8
$ docker pull golang:1.7
$ docker pull python:3

Pipeline DSL

Example 1

pipeline {
    agent { docker 'python:3.7.5' }

    stages {
        stage('build') {
            steps {
                sh 'python --version'
            }
        }
    }
}

Example 2

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..."'
            }
        }
    }
}

Example 3

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'
            }
        }
    }
}

Assignments

Jenkins Docker Plugin

  1. Skonfiguruj zadanie aby uruchamiało kontener
  2. Zadanie ma provisionować konfigurację wewnątrz kontenera
  3. Zadanie ma uruchamiać build wewnątrz kontenera
  4. Zadanie ma niszczyć kontener po buildze