Jenkins共享库返回可执行docker命令

时间:2018-11-29 09:56:49

标签: jenkins shared-libraries jenkins-shared-libraries

是否可以使用共享库来重新调整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" 
}

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 :(得分:0)

如果使用的是DSL样式管道,则应在共享库中定义步骤,而不是直接在src /目录中定义函数。应该遵循此处https://jenkins.io/doc/book/pipeline/shared-libraries/定义的目录结构 然后,您可以定义

之类的步骤
>>> import numpy as np
>>> [int(x) for x in np.binary_repr(123)]
[1, 1, 1, 1, 0, 1, 1]

并通过以下方式从您的管道中调用

vars/mystep.groovy

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

最佳