遇到的问题
之前有说过,在github上可以利用github workflow推送docker镜像到阿里云docker镜像仓库,详情可以参考我之前写的一篇文章
《在github上使用workflow构建docker镜像并推送阿里云》。然而最近再次使用这个功能的时候,发现从github镜像到阿里云推不上去了,很容易超时。
可以看到,成功的几率非常小,基本上都超时了。
解决方案
由此,我想到了一种解决方案:自建registry,由于github在海外,所以在海外的一台机器上搭建registry,在github推送镜像到registry的话,速度肯定会快很多,但是这需要服务器资源和技术学习成本、安全性等问题。
在摸索的过程中,发现了另外一种方式:直接打包到github的ghcr,ghcr是github免费的私有镜像库,没有专门的管理页面,但是发布镜像之后可以直接在个人主页的packages中看到
点进去之后可以看到使用简介啥的
使用方式
具体的使用方式和普通的dockerhub或者阿里云镜像仓库的使用方式是一样的就换个registry和账号密码即可,但是需要注意的是密码是从开发者设置中生成的accesstoken。
1.生成accesstoken
点击头像->settings->Developer settings->Personal access tokens,生成新的token用作登录密码。
2.编写workflow
编写workflow的方式和以前一样,但是需要注意的是每个人推送镜像只能推送到自己在github注册的名下,所以在推送镜像的时候要指定好自己的项目名
最后,触发Action即可推送成功镜像了。
参考文档
注意:本文归作者所有,未经作者允许,不得转载