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

GitHub Action跨私有仓库从ghcr.io拉取镜像提示denied的原因

问题原因及解决办法

核心原因:默认GITHUB_TOKEN权限受限

GitHub Actions自动生成的${{ secrets.GITHUB_TOKEN }}仅拥有当前仓库(仓库B)的读写权限,无法访问同组织下其他私有仓库(仓库A)的资源,包括存放在仓库A的GHCR镜像。

解决步骤

1. 配置工作流权限

在仓库B的GitHub Actions工作流文件中,添加permissions配置,明确授予包读取权限:

jobs:
  你的任务名称:
    permissions:
      packages: read
    steps:
      - name: Log in to GitHub Container Repository
        run: |
          echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
      - name: Pull the image
        run: |
          docker pull ghcr.io/org/a:latest    

2. 给仓库B开放仓库A镜像的访问权限

进入仓库A对应镜像的设置页面(GHCR中ghcr.io/org/a的Package settings):

  • 找到「Manage access」选项
  • 添加仓库B的仓库主体(搜索org/B)或组织内的团队,授予「Read」权限

3. 备选方案:使用个人访问令牌(PAT)

如果上述配置仍无法解决,可创建拥有包读取权限的PAT:

  • 在GitHub个人设置中生成PAT,勾选read:packages权限
  • 将PAT添加到仓库B的Secrets(命名为GHCR_PAT)
  • 修改登录命令:
- name: Log in to GitHub Container Repository
  run: |
    echo "${{ secrets.GHCR_PAT }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:54:17