You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Pipeline如何使用多个自定义Dockerfile指定的容器?

如何在Jenkins流水线不同阶段指定不同Dockerfile

你可以通过Jenkins dockerfile agent的filename参数指定自定义文件名的Dockerfile,还能配合dir参数指定文件所在目录,实现不同阶段使用不同定制化容器的需求。

步骤1:准备多个自定义Dockerfile

在Jenkins工作区创建两个独立的Dockerfile,比如:

  • Dockerfile.local:用于「本地构建」阶段,配置Maven等所需环境
  • Dockerfile.cross:用于「交叉构建」阶段,配置Node.js等所需环境

如果需要分类存放,也可以放在不同子目录,比如build/local/Dockerfile和build/cross/Dockerfile。

步骤2:修改Jenkinsfile指定对应Dockerfile

更新流水线代码,在每个stage的agent块里通过filename(可选搭配dir)参数指定要使用的Dockerfile:

pipeline {
    agent None
    stages {
        stage('本地构建') {
            agent {
                dockerfile {
                    filename 'Dockerfile.local'
                    // 若Dockerfile在子目录(如build/local/),添加以下配置:
                    // dir 'build/local'
                }
            }
            steps {
                sh 'mvn --version'
            }
        }
        stage('交叉构建') {
            agent {
                dockerfile {
                    filename 'Dockerfile.cross'
                    // 子目录示例配置:
                    // dir 'build/cross'
                }
            }
            steps {
                sh 'node --version'
            }
        }
    }
}

关键参数说明

  • filename:直接指定Dockerfile的文件名,替代默认的Dockerfile
  • dir:当Dockerfile不在工作区根目录时,用该参数指定相对路径的目录;如果目录内的文件就是默认的Dockerfile,可只配置dir参数,无需指定filename

内容的提问来源于stack exchange,提问作者endangered

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 02:20:37