Шаблон докера в jenkins Декларативный конвейер

У меня есть Jenkinsfile для декларативного конвейера, в котором используются докеры. В ряде шагов используется агент Docker, и добавление одного и того же агента для этих шагов несколько повторяется.

например

pipeline {
  agent any
  stages {  
    stage('Stage 1') {
      steps {
        //Do something
      }
    }
    stage('Stage 2') {      
      agent {
        docker { image 'jenkins/jenkins-slave:latest'
                 reuseNode true
                 registryUrl 'https://some.registry/'
                 registryCredentialsId 'git'
           args '-v /etc/passwd:/etc/passwd -v /etc/group:/etc/group -e HOME=${WORKSPACE}' 
        }                         
      }
      steps {
         //Do something
      }
    }
    stage('Stage 3') {
      steps {
        //Do something
      }
    }
    stage('Stage 4') {      
      agent {
        docker { image 'jenkins/jenkins-slave:latest'
                 reuseNode true
                 registryUrl 'https://some.registry/'
                 registryCredentialsId 'git'
           args '-v /etc/passwd:/etc/passwd -v /etc/group:/etc/group -e HOME=${WORKSPACE}' 
        }                         
      }
      steps {
         //Do something
      }
    }
  }
}

Есть ли способ, чтобы шаблон агента (или написать свой собственный), чтобы я мог сделать что-то вроде следующего

pipeline {
  agent any
  stages {  
    stage('Stage 1') {
      steps {
        //Do something
      }
    }
    stage('Stage 2') {      
      agent {
        my-docker                     
      }
      steps {
         //Do something
      }
    }
    stage('Stage 3') {
      steps {
        //Do something
      }
    }
    stage('Stage 4') {      
      agent {
        my-docker             
      }
      steps {
         //Do something
      }
    }
  }
}

Так что мне не нужно повторно писать один и тот же агент, и, возможно, я смогу использовать его во всех моих файлах Docker

0 ответов

Другие вопросы по тегам