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

Возможно ли получить общую библиотеку для перенастройки команды запуска docker?

У меня есть следующее,

scr / docker_run.groovy

def ubuntu() {
  echo "docker run --rm " +
         '--env APP_PATH="`pwd`" ' +
         '--env RELEASE=true ' +
         "-v \"`pwd`:`pwd`\" " +
         "-v /var/run/docker.sock:/var/run/docker.sock " +
         "ubuntu" 
}

Jenkinsfile

@Library('pipeline-library-demo') _

pipeline {
    agent {
        node {
            label params.SLAVE
        }
    }

    parameters {
        string(name: 'SLAVE', defaultValue: 'so_slave')
    }

    stages {
        stage('ubuntu') {
            steps {
                script {
                    sh docker_run.ubuntu ls -lah
                }
            }
        }
    }
}

Я пробовал разные вещи в файле groovy, такие как echo, sh, call, все возвращаемые ошибки.

Любая помощь будет отличной

1 Ответ

0 голосов
/ 29 ноября 2018

Если вы используете конвейер стиля DSL, вы должны определить шаги в вашей общей библиотеке, а не функцию в каталоге src /.Должен следовать структуре каталогов, определенной здесь https://jenkins.io/doc/book/pipeline/shared-libraries/. Затем вы можете определить Шаг как

vars/mystep.groovy

def call() {
    this.sh("docker_run.ubuntu ls -lah");
}

И вызывать из вас конвейер как:

@Library('pipeline-library-demo') _

pipeline {
    agent {
        node {
            label params.SLAVE
        }
    }

    parameters {
        string(name: 'SLAVE', defaultValue: 'so_slave')
    }

    stages {
        stage('ubuntu') {
            steps {
                mystep
            }
        }
    }
}

Лучший

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...