Какое условие устанавливает рабочую область Jenkins для очистки (или не для очистки)? - PullRequest
0 голосов
/ 06 ноября 2018

Простое (как я думал) задание.

  1. для установки старшего подчиненного контейнера Jenkins (в контейнере).
  2. сборка двоичных файлов внутри контейнера.
  3. чтобы настроить Jenkins для создания образа с этими двоичными файлами внутри.
  4. для запуска контейнера на основе моего изображения.

Прежде всего, хорошо, что подчиненный контейнер использует те же сопоставленные тома от master. Итак, у меня есть мои двоичные файлы в основной рабочей области на Master после завершения этапа подчиненного контейнера. Но я не знаю, почему (или почему нет) Дженкинс чистит рабочее пространство между этапами. я использую stage('cleanup old image/containers stage') с отдельным рабочим пространством, чтобы предотвратить очистку основного рабочего пространства при запуске stage('Build image') Как я могу сохранить рабочее пространство со сменой агента?

вот часть моего Jenkinsfile:

pipeline {
        agent none
            environment{
    stages {
        stage('build container up') {               // ------ Start container and build binaries inside
            agent {
                docker {
                image G_buildimage
                args ' --expose 8080 --network proxy_nw -v G_dirdouble'
                }
            }
            stages {
                stage('Build') {}
                stage('service up'){}
                stage('test before deploy'){}               
            }
        }
    stage('clenap old image/containers stage') { // ------ Delete old versions (Without this stage main worckspace will be cleaned up)
        agent {
            node {
                label 'master'
                customWorkspace 'clenupworkspace'
            }
        }
        environment {}
        steps {}
    stage('Build image') {                      // ------ build image with binaries from workspace 
        steps {
            script {
                docker.withRegistry('', 'dockerhub') {
                    def wimage = docker.build("${G_image}:${env.BUILD_ID}")
                    wimage.push()
                    wimage.push('latest')
                }
            }
        }
    }
    stage('Run service container'){             // ------ run container from my image
        agent {label 'master'}
            environment {
            steps {
                dir ('containers'){
                    script{
                        docker.withRegistry('', 'dockerhub') {
                            def wimage = docker.image("${G_image}:latest")
                            docker.withServer('tcp://devhost:2376', 'dev.Docker') {
                                sh 'docker-compose pull && docker-compose up -d --force-recreate'
                            }
                        }
                    }
                }
            }
        }
    stage('test service container'){}
    post {}
}   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...