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

使用GitHub Actions推送Docker镜像至GitHub Packages失败求助

解决GitHub Actions推送Docker镜像到GitHub Packages权限被拒的问题

针对你遇到的denied: requested access to the resource is denied错误,以下是几个必查的解决方向:

1. 确认注册表和镜像名格式正确

GitHub Packages容器注册表的正确格式是ghcr.io/<OWNER>/<IMAGE_NAME>,其中:

  • <OWNER>是你的GitHub用户名或组织名称
  • <IMAGE_NAME>是你的镜像名称(通常和仓库名一致,也可自定义)

检查你的REGISTRY和IMAGE_NAME环境变量:

  • REGISTRY必须设为ghcr.io
  • IMAGE_NAME必须包含你的用户名/组织名,比如my-username/my-app-image

2. 为GITHUB_TOKEN添加足够的权限

默认的GITHUB_TOKEN权限有限,推送镜像需要write:packages权限。在你的工作流jobs下添加权限配置:

jobs:
  build-and-push:
    permissions:
      packages: write
      contents: read  # 若需要拉取仓库代码,需保留此权限
    steps:
      # 你的其他步骤...

3. 确认镜像命名空间的所有权

你推送的镜像必须属于当前执行工作流的账号(github.actor)或其所在的组织:

  • 个人仓库下,镜像名必须以你的用户名开头,比如ghcr.io/john/my-image
  • 组织仓库下,镜像名必须以组织名开头,比如ghcr.io/my-org/my-image,同时确保工作流执行账号拥有组织内的包推送权限

4. 检查组织级别的包设置(针对组织仓库)

如果是在组织下推送镜像,需确认组织设置允许创建和推送包:

  • 进入组织的Settings → Packages → Package settings
  • 确保相关权限配置允许工作流账号推送内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:15:15