Jenkins构建代理docker指定docker文件名

Vij*_*han 4 jenkins docker jenkins-docker jenkins-groovy jenkins-pipeline

我正在按照此代码片段添加到 jenkins 构建代理的 docker 文件(https://www.jenkins.io/doc/book/pipeline/docker/),

pipeline {
agent { dockerfile true }
stages {
    stage('Test') {
        steps {
            sh 'node --version'
            sh 'svn --version'
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

'dockerfile true'查找默认的 Dockerfile。有没有一种方法可以指定 docker 文件名,因为我不想使用默认文件名,因为我的设置与已有的设置不同?

Mat*_*ard 5

是的,您绝对可以dockerfile在指令中指定文件名agent。一个例子(带有dockerfile中参数的其他参数agent)是:

agent { // agent directive
  // Equivalent to "docker build -f Dockerfile.build --build-arg version=1.0.2 ./build/
  dockerfile { // dockerfile parameter
    filename             'Dockerfile.build' // filename argument and value
    dir                  'build'
    label                'my-defined-label'
    additionalBuildArgs  '--build-arg version=1.0.2'
    args                 '-v /tmp:/tmp'
  }
}
Run Code Online (Sandbox Code Playgroud)

在管道代理参数的文档中,您可以向下滚动到dockerfile参数以查看参数的参数以及它们如何允许agent自定义。