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

GitHub Actions自托管Windows runner执行Docker命令报访问拒绝如何解决?

问题根因

你本地测试Docker命令时使用的是登录Windows的个人用户账号,该账号已加入docker-users用户组、且已经完成Harbor仓库的身份认证,所以可以正常执行命令。而GitHub Actions自托管Runner默认以Local Service系统账号或者独立的Runner服务账号运行,两个账号的用户组权限、Docker认证配置相互独立,因此Runner运行时会出现权限不足或认证失败的访问拒绝错误。

修复步骤
  • 确认Runner的运行身份
    打开Windows服务管理器(运行命令services.msc),找到名称前缀为GitHub Actions Runner的对应服务,查看登录选项卡下配置的运行账号。如果你的Runner没有注册为Windows服务,是直接通过run.cmd前台启动的,记录启动进程时使用的Windows账号即可。
  • 配置对应账号的Docker权限
    两种方案二选一即可:
    1. 将Runner服务的运行账号修改为你本地测试成功的用户账号,保存配置后重启Runner服务生效
    2. 为当前Runner的运行账号单独配置权限:
      • 执行命令将账号加入Docker用户组:net localgroup docker-users <你的Runner运行账号名> /add
      • 切换到Runner运行账号身份打开PowerShell,执行docker login <你的Harbor仓库地址>,输入Harbor的用户名密码完成认证,认证信息会自动保存到该账号的配置路径下
  • (可选)工作流主动配置登录逻辑
    为了避免账号切换后认证信息丢失的问题,建议将Harbor地址、用户名、访问令牌存入GitHub仓库的Secrets配置中,在工作流中主动执行登录操作,示例配置如下:
    steps:
      - name: 登录Harbor镜像仓库
        run: docker login ${{ secrets.HARBOR_DOMAIN }} -u ${{ secrets.HARBOR_USER }} -p ${{ secrets.HARBOR_TOKEN }}
    
  • 重启验证
    完成所有配置后重启GitHub Actions Runner服务,重新触发工作流即可验证修复效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:36:02