今天在用流水线打docker镜像的时候遇到一个问题, 报错如下,error failed to solve: rpc error: code= unknown desc = failed to fetch oauth token: unexpected status:403 Forbidden,下面我介绍一下解决这个问题的心路历程 。

  1. 介绍流水线工具。
    公司是用的打包工具是阿里云的“云效”自带的流水线,通过配置自动打jar包,然后把jar包打成镜像,然后再推送到腾讯云的镜像服务。不要觉得我们花哨,一会阿里一会腾讯。主要是我们一开始用的代码仓库是阿里的,但是我们的服务器又是跟腾讯签约了协议,拿到了腾讯的低折扣,所以我们的镜像都放在腾讯,方便部署。
     
  2.  排错过程
    报这个错的时候,第一想到的就是,权限问题。所以是不是有人动了流水线的账号密码呢?检查之后,发现没问题
    其次,在想,是不是因为我镜像的依赖的java镜像库的权限问题?因为从国外拉镜像速度太慢了,所以我们自己的镜像库里放了java镜像,会不会是这个地方权限的原因呢?检查之后,也没问题
     
  3. 解决方案
    最后,突然想起来,之前遇到过类似的情况,腾讯云的镜像仓库,免费实例的版本,每个仓库只允许最大100个镜像,我是不是要检查一下我们的镜像库的镜像数量呢?打开一看,果然,已经100个。就是这个原因了。至于为什么报错是没有权限error failed to solve: rpc error: code= unknown desc = failed to fetch oauth token: unexpected status:403 Forbidden,这就不得而知了。
     
  4. 总结
    通过这个排错,我总结了一下,用腾讯或者阿里这样的三方产品的时候,一定要熟悉文档,不然容易出现一些莫名其妙的问题。

好了,关于error failed to solve: rpc error: code= unknown desc = failed to fetch oauth token: unexpected status:403 Forbidden这个问题的解决就是这样的,每个人遇到的场景可能不同。

镜像报错