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

如何在GitLab流水线中使用GitHub Packages镜像?遇未授权问题求助

解决方案

问题原因

本地能拉取镜像说明你的本地Docker已持有GHCR的认证信息(可能之前手动登录过),但GitLab Runner环境没有对应权限,无法拉取私有镜像(或需要认证的公开镜像)。

步骤1:创建GitHub PAT

生成一个具备read:packages权限的GitHub个人访问令牌(PAT):

  • 登录GitHub,进入「Settings」→「Developer settings」→「Personal access tokens」
  • 点击「Generate new token」,勾选read:packages权限,生成后保存好令牌内容(只会显示一次)

步骤2:配置GitLab CI/CD变量

在你的GitLab项目中:

  • 进入「Settings」→「CI/CD」→「Variables」
  • 添加两个变量:
    • GHCR_USER:你的GitHub用户名
    • GHCR_TOKEN:刚才生成的PAT,勾选「Mask variable」和「Protect variable」(可选,增强安全性)

步骤3:修改.gitlab-ci.yml

更新配置,给镜像添加认证信息:

stages:
  - build

custom_image_job:
  stage: build
  image:
    name: ghcr.io/geosales-evolution/fastlane-linux-flutter-android-dockerimage:0.0.2
    credentials:
      username: $GHCR_USER
      password: $GHCR_TOKEN
  script:
    - echo "Hello, World!"

额外排查点

如果确认镜像为公开镜像,仍出现授权错误:

  • 检查GitLab Runner的网络是否能正常访问GHCR(部分环境可能有网络代理或防火墙限制)
  • 尝试在Runner环境手动执行docker pull命令,排查是否是Runner本身的认证或网络问题

内容的提问来源于stack exchange,提问作者João Pedro Gonçalves

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 09:12:13