【问题标题】:Jenkins: how to use variables inside agent docker args?Jenkins:如何在代理 docker args 中使用变量?
【发布时间】:2018-12-21 09:47:51
【问题描述】:

Jenkins 不想在代理 docker args 部分中使用任何变量,除了主要的 Jenkins 变量,例如 JENKINS_URL

容器化 Jenkins 2.152。尝试使用变量使用自定义参数启动 docker 代理。尝试使用 Groove var、env.Var 之类的环境 var、${Var} 之类的环境 var。它们都被用作名称,而不是它们的值。

Jenkinsfile

    Gpath = "/var/log:/opt/gpath"
    pipeline {
    agent {
        docker {
            image "bash:latest"
            args '--network proxy_nw -v Gpath -v ${Ppath} -v env.Ppath2 -v /var/log:/${NODE_LABELS}'
        }
    }
    environment {
        Ppath = "/var/log:/opt/ppath"
        Ppath2 = "/var/log:/opt/ppath2"
    }
        stages {
            stage ('main') {
                steps {
                   script {
                    sh 'echo "Ppath= " ${Ppath} "; Ppath2= " ${Ppath2} "; NODE_LABELS= " ${NODE_LABELS}'
                    sh 'printenv'
                    input message: "wait"
                }
            }
        }
    }
}

Jenkins 控制台输出

docker run -t -d -u 1000:1000 --network proxy_nw -v Gpath -v ${Ppath} -v env.Ppath2 -v /var/log:/${NODE_LABELS}

如您所见,我在 args 部分中使用了几个变量。 好的,由于单引号,Groovy 变量看起来像名字是合理的。我们可以在 Jenkins 控制台输出中看到它。 但是环境变量也不起作用。它们实际上在 docker 容器中可用,而不是在 Jenkins 级别。
那么,如何为代理 docker 指令的 args 部分定义变量呢?

【问题讨论】:

    标签: jenkins jenkins-pipeline


    【解决方案1】:

    我找到了解决方法。

    我添加到顶层agent none 并将我所有的阶段都放入了仅容器声明的阶段。是的,这是因为我们可以把stages放在stage里面

    pipeline {
        agent none
        environment {
        WORKDIR = getVar(G_workdir)
        DIRDOUBLE = getVar(G_dirdouble)
        }
        stages {
            stage('build container up') {
                agent {
                    docker {
                        image G_container
                        args '--network proxy_nw -v ${DIRDOUBLE}'
                    }
                }
                stages {
                    stage('Initialise') {
                            steps {
                ........
    

    【讨论】:

      猜你喜欢
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 2019-12-14
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      • 1970-01-01
      • 2019-12-11
      相关资源
      最近更新 更多