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

Jenkins build agent docker specify docker file name

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

pipeline {
agent { dockerfile true }
stages {
    stage('Test') {
        steps {
            sh 'node --version'
            sh 'svn --version'
        }
    }
}
}

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

是的,你完全可以在agent指令中指定dockerfile文件名。这方面的一个例子(agentdockerfile 参数的其他参数)是:

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

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