0

是否可以获得共享库来重新调整 docker run 命令?

我有以下,

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

詹金斯文件

@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,所有返回错误。

任何帮助都会很棒

4

1 回答 1

0

如果您使用 DSL 风格的管道,您应该在共享库中定义 Steps 而不是直接在 src/ 目录中定义一个函数。应该遵循这里定义的目录结构https://jenkins.io/doc/book/pipeline/shared-libraries/ 然后你可以定义一个 Step 像

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

最好的

于 2018-11-29T17:04:00.073 回答