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

无法通过GitHub Actions向GitHub容器注册表(GHCR)推送Docker镜像

问题排查与解决方案

核心问题定位

你当前遇到的镜像没有出现在packages中的核心原因是docker/build-push-action@v1缺少必填的镜像地址配置项,日志中Pushing image []的空括号直接证明动作没有获取到要推送的镜像目标地址,虽然你在全局env中定义了REGISTRY和IMAGE_NAME,但没有显式传入动作的对应参数,所以仅完成了镜像构建,没有实际执行推送操作,动作的成功状态属于误报。

直接修复方案

修改工作流中「Build and push Docker image」步骤的配置,补充registry、repository、tags参数即可,修正后的配置如下:

- name: Build and push Docker image
  uses: docker/build-push-action@v1
  with:
    registry: ${{ env.REGISTRY }}
    repository: ${{ env.IMAGE_NAME }}
    tags: latest # 可根据需求自定义标签,比如用commit hash作为标签
    push: true

如果需要使用更稳定的新版构建动作,建议升级到docker/build-push-action@v4及以上版本,搭配docker/metadata-action自动生成镜像标签,兼容性和错误提示更完善。

其他可选排查点

如果修改配置后仍然无法看到镜像,可依次排查以下项:

  • 仓库/组织权限校验:如果是组织下的仓库,确认组织设置中没有限制GitHub Actions的包写入权限,同时检查仓库设置的「Actions-常规」页面,是否开启了Actions的读写权限以及包管理权限。
  • 包归属校验:GHCR默认会将首次推送的私有包归属到推送者的个人账号下,你可以先检查个人账号的packages列表是否存在对应镜像,进入包的设置页手动将其关联到目标仓库即可在仓库的packages菜单中看到。
  • 完整日志排查:展开构建步骤的全量日志,检查是否存在静默的权限报错、镜像名称格式错误等问题,旧版本的build-push-action存在推送失败仍返回成功状态的bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:15:03