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

求助:从GHCR拉取私有Docker镜像提示unauthorized问题排查

拉取GHCR私有镜像需补充的配置排查点

1. 确认GITHUB_TOKEN的权限声明

默认的secrets.GITHUB_TOKEN仅对当前仓库有读写权限,拉取私有镜像时必须显式声明权限:

  • 在工作流的job层级添加permissions字段,指定packages: read(推送需要write,拉取仅需read)
  • 示例配置片段:
jobs:
  pull-image:
    runs-on: ubuntu-latest
    permissions:
      packages: read
    steps:
      - name: 登录GHCR
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

2. 跨仓库拉取的权限配置

如果镜像所在仓库和拉取工作流的仓库不是同一个,必须:

  • 打开镜像所在仓库的设置页面,进入「Packages」→「Manage Actions access」
  • 添加拉取工作流所在的仓库/团队,授予Read权限

3. 本地拉取的身份验证方式

本地拉取别用GITHUB_TOKEN(它是Actions临时令牌,仅在工作流内有效),需:

  • 生成带read:packages权限的个人访问令牌(PAT)
  • 执行登录命令:
echo "你的PAT内容" | docker login ghcr.io -u 你的GitHub用户名 --password-stdin

4. 镜像路径的准确性

拉取命令必须完全匹配GHCR上的镜像路径,格式为ghcr.io/用户名/镜像名:标签,注意大小写敏感,别写错用户名或镜像名称

5. 触发账号的权限验证

确保触发拉取工作流的GitHub账号,拥有目标镜像仓库的读取权限;如果github.actor对应的账号权限不足,可以直接指定有读取权限的固定用户名


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:40:26