GitHub Actions如何拉取私有Google Artifacts Registry容器镜像
GitHub Actions拉取私有Google Artifact Registry容器镜像配置方案
GAR的Docker协议认证逻辑和Docker Hub有区别,不需要额外引入第三方登录Action,直接适配credentials字段即可,步骤如下:
前置准备
- 把你持有的具备权限的GCP服务账号JSON密钥文件的完整原文(包含所有括号、换行、字段的全量文本),存储到GitHub仓库的Secrets中,建议命名为
GCP_SA_KEY - 确认服务账号已拥有目标GAR仓库的拉取权限(你持有的所有者权限已满足要求,无需额外配置)
核心配置规则
GAR的Docker认证参数为固定值:
- 用户名:
_json_key(注意是固定字符串,不要填服务账号邮箱、GCP账号名) - 密码:刚才存入Secrets的服务账号JSON完整内容
完整工作流配置示例
jobs: my_job: runs-on: ubuntu-20.04 container: image: asia-southeast2-docker.pkg.dev/my-project/my-repo/my-image:latest options: --user root credentials: username: _json_key password: ${{ secrets.GCP_SA_KEY }}
常见避坑提示
- 不要拆分服务账号JSON的字段单独存储,必须传入完整JSON原文作为密码,否则会报认证失败
- 镜像地址的区域前缀必须和你GAR仓库实际所在区域一致,跨区域拉取会报404或权限错误
- 该配置在job初始化拉取容器阶段就会生效,不需要在steps中额外添加Docker登录步骤
内容的提问来源于stack exchange,提问作者jebret
相关产品推荐
相关产品推荐

