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

如何在同项目的GitHub Actions不同工作流之间共享Docker镜像标签

GitHub Actions跨工作流传递Docker镜像标签的可行方案

有三种常用的落地方式可以实现该需求:

方案1:使用工作流制品(Artifacts)存储标签

该方案不需要额外权限配置,适合需要保留历史标签记录的场景:

  • 第一个push触发的工作流中,完成镜像构建推送后,将生成的标签写入本地文件,上传为工作流制品:
# 假设你已将生成的镜像标签存入DOCKER_IMAGE_TAG环境变量
- name: 写入镜像标签到本地文件
  run: echo "${{ env.DOCKER_IMAGE_TAG }}" > ./image-tag.txt
- name: 上传标签为工作流制品
  uses: actions/upload-artifact@v4
  with:
    name: docker-image-tag
    path: ./image-tag.txt
    retention-days: 30 # 可自定义制品保留天数,最长90天
  • 第二个手动触发的工作流中,先拉取第一个工作流最近成功运行上传的制品,读取标签即可使用:
- name: 下载最新镜像标签制品
  uses: dawidd6/action-download-artifact@v3
  with:
    workflow: 替换为第一个工作流的yml文件名,例如build-image.yml
    workflow_conclusion: success
    name: docker-image-tag
- name: 读取标签到环境变量
  run: echo "DOCKER_IMAGE_TAG=$(cat ./image-tag.txt)" >> $GITHUB_ENV
# 后续部署步骤直接引用${{ env.DOCKER_IMAGE_TAG }}即可

方案2:使用仓库变量持久化存储最新标签

该方案适合只需要用到最新构建的镜像标签的场景,读取更简单:

  • 首先在仓库的Settings → Secrets and variables → Actions → Variables中新建一个变量,例如命名为LATEST_DOCKER_TAG,初始值可以随便填。
  • 在第一个工作流的配置中为GITHUB_TOKEN开放变量读写权限,构建完成后调用API更新该变量的值:
# 工作流开头配置权限
permissions:
  actions: write
  contents: read
# 构建镜像后的步骤
- name: 更新仓库变量存储最新镜像标签
  uses: action-pack/set-variable@v1
  with:
    name: LATEST_DOCKER_TAG
    value: ${{ env.DOCKER_IMAGE_TAG }}
    token: ${{ secrets.GITHUB_TOKEN }}
  • 第二个工作流中直接引用仓库变量即可:${{ vars.LATEST_DOCKER_TAG }}

方案3:工作流触发时直接传递参数

如果需要保留手动触发能力的同时,也支持第一个工作流构建完成后自动触发部署,可以采用该方案:

  • 先在第二个手动工作流的触发配置中新增入参:
on:
  workflow_dispatch:
    inputs:
      docker_image_tag:
        description: "待部署的Docker镜像标签"
        required: true
        type: string
  • 在第一个工作流末尾新增触发第二个工作流的步骤,直接传递镜像标签作为参数:
- name: 触发部署工作流
  uses: benc-uk/workflow-dispatch@v1
  with:
    workflow: 替换为第二个工作流的yml文件名,例如deploy.yml
    inputs:
      docker_image_tag: ${{ env.DOCKER_IMAGE_TAG }}
    token: ${{ secrets.GITHUB_TOKEN }}

该方案下手动触发部署时,你可以手动填写要部署的标签值,自动触发时则由第一个工作流自动传入最新构建的标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:27:00