Как запустить привилегированный контейнер Docker с помощью декларативного конвейера Jenkins - PullRequest
0 голосов
/ 19 сентября 2018

Я некоторое время пытался запустить привилегированный контейнер в декларативном конвейере Jenkins, но не могу найти синтаксис или какие-либо примеры в документации.То, что у меня есть, с непривилегированным контейнером:

pipeline {
    agent none
    stages {
        stage("Build") {
            agent {
                docker { image "hello-world" }
            }
        }
    }
}

Это похоже на общий случай использования, я не могу поверить, что никто уже не сталкивался с этим: (

1 Ответ

0 голосов
/ 19 сентября 2018

Пожалуйста, обратитесь к приведенному ниже примеру:

 stage('Update dependencies version') {
        agent {
            docker {
                image 'maven'
                args '--privileged -v $HOME/.m2:/home/jenkins/.m2 -ti -u 496 -e MAVEN_CONFIG=/home/jenkins/.m2 -e MAVEN_OPTS=-Xmx2048m'
            }
        }

        when {
            not {
                branch 'master'
            }
        }

        steps {
            script {
                ....
            }
        }
    }

Или на верхнем уровне:

 pipeline {
        agent {
            docker {
                image 'maven'
                args '--privileged -v $HOME/.m2:/home/jenkins/.m2 -ti -u 496 -e MAVEN_CONFIG=/home/jenkins/.m2 -e MAVEN_OPTS=-Xmx2048m'
            }
        }
        stages {
            stage('Build') {
                steps {
                    script {
                        maven.cleanPackage()
                    }
                }
            }
        }
    }

Или внутри сценария под этапом:

        stage('Build') {
        agent {
            label 'jenkins-slave-swat-prod-01'
        }

        steps {
            script {
                docker.image('mysql:latest').withRun('-e "MYSQL_ROOT_PASSWORD=password" -e "MYSQL_DATABASE=scheduler" -p 3306:3306') { c ->
                    docker.image('maven').inside("--privileged -v $HOME/.m2:/home/jenkins/.m2 -ti -u 496 -e MAVEN_CONFIG=/home/jenkins/.m2 -e MAVEN_OPTS=-Xmx2048m --link ${c.id}:localhost") {
                        maven.cleanPackage()
                    }
                }
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...