ghcr:免费的github私有镜像库

Published on 2021-09-28 15:36 in 分类: 随笔 with 狂盗一枝梅
分类: 随笔

遇到的问题

之前有说过,在github上可以利用github workflow推送docker镜像到阿里云docker镜像仓库,详情可以参考我之前写的一篇文章

《在github上使用workflow构建docker镜像并推送阿里云》。然而最近再次使用这个功能的时候,发现从github镜像到阿里云推不上去了,很容易超时。

image-20210928151921768

可以看到,成功的几率非常小,基本上都超时了。

image-20210928152120268

解决方案

由此,我想到了一种解决方案:自建registry,由于github在海外,所以在海外的一台机器上搭建registry,在github推送镜像到registry的话,速度肯定会快很多,但是这需要服务器资源和技术学习成本、安全性等问题。

在摸索的过程中,发现了另外一种方式:直接打包到github的ghcr,ghcr是github免费的私有镜像库,没有专门的管理页面,但是发布镜像之后可以直接在个人主页的packages中看到

image-20210928152535080

点进去之后可以看到使用简介啥的

image-20210928152645313

使用方式

具体的使用方式和普通的dockerhub或者阿里云镜像仓库的使用方式是一样的就换个registry和账号密码即可,但是需要注意的是密码是从开发者设置中生成的accesstoken。

1.生成accesstoken

点击头像->settings->Developer settings->Personal access tokens,生成新的token用作登录密码。

2.编写workflow

编写workflow的方式和以前一样,但是需要注意的是每个人推送镜像只能推送到自己在github注册的名下,所以在推送镜像的时候要指定好自己的项目名

image-20210928153410022

最后,触发Action即可推送成功镜像了。

参考文档

使用Github Actions发布docker镜像到仓库


#github
目录