GitHub多环境CI/CD配置咨询:指定历史构建版本部署
部署指定构建编号的Docker镜像到对应环境
要部署非最新的构建版本,核心是让部署工作流支持手动指定构建编号,拉取对应标签的镜像完成部署,具体操作如下:
1. 修改部署工作流,添加手动触发参数
给DEV、TEST、LIVE三个环境的部署工作流分别添加手动触发输入项,让你能在触发时指定目标构建编号。以DEV环境的部署工作流为例,修改后配置如下:
name: Deploy to DEV on: # 保留原有自动触发规则(比如构建完成后触发),新增手动触发入口 workflow_dispatch: inputs: build_number: description: '要部署的构建编号' required: true type: string jobs: deploy: runs-on: ubuntu-latest environment: name: DEV steps: - name: 拉取指定构建编号的镜像 run: docker pull 你的镜像仓库地址/你的镜像名:${{ github.event.inputs.build_number }} # 替换成你实际的部署命令,比如启动容器、更新K8s资源等 - name: 部署到DEV环境 run: | docker stop dev-app || true docker rm dev-app || true docker run -d --name dev-app -p 80:80 你的镜像仓库地址/你的镜像名:${{ github.event.inputs.build_number }}
2. 确保构建工作流的镜像标签与构建编号绑定
在你的构建工作流里,必须用GitHub自动生成的构建编号(github.run_number)作为镜像标签,才能和部署时指定的编号一一对应。构建工作流中推送镜像的步骤示例:
- name: 构建并推送Docker镜像 run: | docker build -t 你的镜像仓库地址/你的镜像名:${{ github.run_number }} . docker push 你的镜像仓库地址/你的镜像名:${{ github.run_number }}
3. 手动触发指定版本的部署
在GitHub仓库的「Actions」页面,找到目标部署工作流(比如「Deploy to DEV」),点击右侧的「Run workflow」,在弹出的输入框中填写要部署的构建编号(比如3),点击「Run workflow」即可触发该版本的部署。
注意事项
- 确认镜像仓库中存在对应构建编号的镜像,否则部署会失败。
- 如果使用私有镜像仓库,要在部署工作流中添加Docker登录步骤,配置好拉取权限。
内容的提问来源于stack exchange,提问作者sergei
相关产品推荐
相关产品推荐

