github

github 镜像仓库

Github Container Registry

参考:https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-docker-registry

9 月 1 日,GitHub 宣布 Github Container Registry 开始公测,测试期间提供免费、无限容量的 Docker 镜像仓库服务。

再也不用担心,docker.io 一言不合清理镜像了。真好真香!

GitHub 正在以托管代码仓库为切入点,逐步覆盖整个研发工具链,打造一站式 DevOps 平台。项目管理有 Issues 、Projects,包管理有 Packages,CI 有 Actions,知识管理有 Wiki ,覆盖面越来越广。

接下来应该就是 CD 部分了,提供容器托管服务是个不错的选择。@GitHub

推送第一个镜像

下面我们来试试推送一个镜像。

创建登陆 Token 并进行身份验证

Github Container registry 需要使用 https://github.com/settings/tokens/new 页面创建的 Token 作为密码才可以推送镜像。
页面操作:找到个人 Settings 点击侧栏 Developer settings 找到 Personal access tokens 创建新的 token

打开上面的链接,勾选 write:packages 和 read:packages ,repo 会自动选中,创建 Token。

下面以 XXX 代指这里的 Token 值。

镜像推送

登陆

export CR_PAT=YOUR_TOKEN
echo "$CR_PAT" | echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin

WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

新建 Tag

#docker push ghcr.io/NAMESPACE/IMAGE_NAME:latest
#将 NAMESPACE 替换为要作为映像限定范围的个人帐户或组织的名称

# 查看镜像列表
$ docker images
REPOSITORY        TAG                          IMAGE ID       CREATED        SIZE
tomcat            8.5.87-jre17-temurin-jammy   ade987ac371b   3 months ago   285MB
nginx             latest                       3f8a00f137a0   3 months ago   142MB

# 新建 Tag
$ docker tag 5dbe5b6313e1 ghcr.io/shaowenchen/mysql
docker tag 3f8a00f137a0 ghcr.io/jaspervincent/nginx:v1
docker tag 3f8a00f137a0 ghcr.io/jaspervincent/ops/nginx:v1
docker tag ade987ac371b ghcr.io/jaspervincent/ops/tomcat:v8

推送

docker push ghcr.io/jaspervincent/nginx:v1
docker push ghcr.io/jaspervincent/ops/nginx:v1
docker push ghcr.io/jaspervincent/ops/tomcat:v8

这样就完成了镜像的推送。但是镜像并不是每个人都可以 pull ,下面接着来看下镜像的可见性管理。

可见性管理

推送完成镜像之后,在个人的主页 packages 标签页下面,可以看到镜像列表。

默认推送的镜像是 Private ,只有授权的账户才可以 pull 。而 Public 镜像可以匿名 pull ,没有限制。

  • Private

在 Private 镜像的 Packages settings 页面,找到 Danger Zone 点击 Change visibility 可以将 Private 镜像改为 Public ,还可以进行授权的管理 Manage Access。

  • Public

需要注意的是在 Public 镜像的 Packages settings 页面,无法修改镜像的可见性,只能删除镜像。

使用 GitHub Actions 发布和安装包

Github 作为图片仓库

issues 不灵了

  1. 创建 github 仓库
  2. Issues 上传图片

    新建一个 issues,写好标题,将准备好的图片拖进来,提交

    编辑,复制连接地址

  3. 文档中引用图片

cdn 加速

  1. 创建 github 仓库
  2. 将需要上传的图片添加到库对应文件夹
  3. 通过jsDelivr引用资源

    jsDelivr(https://jsdelivr.com)就是一种免费且快速的CDN,通过jsDelivr引用资源GIthub图片资源,即可实现图片加速。

    使用方法:

    https://cdn.jsdelivr.net/gh/你的用户名/你的仓库名@发布的版本号/文件路径
    
    如:
    github图片连接:
    https://github.com/jaspervincent/pic/blob/master/webchat-ali-pay.jpg
    
    改写后:
    https://cdn.jsdelivr.net/gh/jaspervincent/pic@master/webchat-ali-pay.jpg
    

    其他的github cdn加速
    https://cdn.jsdmirror.com 大于10MB的文件

    https://cdn.jsdmirror.com/gh/jaspervincent/pic/webchat-ali-pay.jpg
    
webchat-ali-pay.jpg