Jenkins声明式流水线如何在Docker代理上将master分支打ZIP包并携带构建号
实现步骤
前置确认
- 你使用的Docker agent镜像需要预装
zip命令,若使用Debian/Ubuntu系基础镜像,可在构建agent镜像时执行apt update && apt install -y zip完成预装,也可在Pipeline步骤中临时安装。 - Jenkins内置环境变量
BUILD_NUMBER可直接读取当前构建的序号,无需额外配置。
完整修改后的Pipeline代码
pipeline { agent any // 你可以替换为你实际使用的Docker agent配置,比如 agent { docker { image '你的镜像名' } } stages { stage('拉取代码') { steps { // 如果是多分支Pipeline,可省略该步骤,默认会拉取对应分支代码 git branch: 'master', url: '你的代码仓库地址' } } stage ('ZIP打包') { steps { echo "Building the zip package" // 打包当前目录所有内容,包名携带构建号 // 可添加-x参数排除不需要的文件,比如 -x "*.git/*" 排除.git目录 sh 'zip -r master-build-${BUILD_NUMBER}.zip .' } post { success { // 可选:将打包好的zip归档到Jenkins构建记录,方便后续下载 archiveArtifacts artifacts: 'master-build-*.zip', fingerprint: true } } } } }
配置说明
- 拉取代码的步骤如果在你的现有Pipeline中已经实现,可以直接删除对应stage,只保留打包逻辑即可。
- 打包时如果需要过滤文件,可在
zip命令后添加-x参数,示例:sh 'zip -r master-build-${BUILD_NUMBER}.zip . -x "*.git/*" "node_modules/*"',可排除.git目录和node_modules目录。 - 如果需要将打好的包上传到其他存储或者用于后续步骤,可直接使用
master-build-${BUILD_NUMBER}.zip作为文件路径引用。
内容的提问来源于stack exchange,提问作者vel
相关产品推荐
相关产品推荐

