Docker Images Pusher
使用Github Action将国外的Docker镜像转存到阿里云私有仓库,供国内服务器使用,免费易用
- 支持DockerHub, gcr.io, k8s.io, ghcr.io等任意仓库
- 支持最大40GB的大型镜像
- 使用阿里云的官方线路,速度快
视频教程:https://www.bilibili.com/video/BV1Zn4y19743/
作者:技术爬爬虾
一、 配置阿里云
- 登录 阿里云容器镜像服务
- 启用个人实例,创建一个命名空间
避免登录步骤麻烦,我这里直接选了公开
访问凭证 → 获取环境变量
命名空间: ALIYUN_NAME_SPACE
用户名: ALIYUN_REGISTRY_USER
密码:ALIYUN_REGISTRY_PASSWORD
仓库地址:ALIYUN_REGISTRY
二、 Fork docker_image_pusher 项目
1. 启动Action
进入您自己的项目,点击Action,启用Github Action功能
2. 配置环境变量
Settings -> Secret and variables -> Actions -> New Repository secret
将上一步的四个值配置成环境变量
ALIYUN_NAME_SPACE
ALIYUN_REGISTRY_USER
ALIYUN_REGISTRY_PASSWORD
ALIYUN_REGISTRY
3. 添加镜像
回到Code打开 images.txt 文件,添加你想要的镜像
可以加tag,也可以不用(默认latest)可添加 --platform=xxxxx 的参数指定镜像架构可使用 k8s.gcr.io/kube-state-metrics/kube-state-metrics 格式指定私库可使用 #开头作为注释
- 文件提交后,自动进入Github Action构建
在 Actions 可以看到处理的进度
5. 使用镜像
回到阿里云,镜像仓库,点击任意镜像,可查看镜像状态。(可以改成公开,拉取镜像免登录)
在国内服务器pull镜像, 例如:
docker pull registry.cn-hangzhou.aliyuncs.com/shrimp-images/alpine
registry.cn-hangzhou.aliyuncs.com 即 ALIYUN_REGISTRY(阿里云仓库地址)
shrimp-images 即 ALIYUN_NAME_SPACE(阿里云命名空间)
alpine 即 阿里云中显示的镜像名
6. 多架构
需要在 images.txt 中用 –platform=xxxxx 手动指定镜像架构
指定后的架构会以前缀的形式放在镜像名字前面
7. 镜像重名
程序自动判断是否存在名称相同, 但是属于不同命名空间的情况。
如果存在,会把命名空间作为前缀加在镜像名称前。
例如:
xhofe/alistxiaoyaliu/alist
8. 定时执行
修改/.github/workflows/docker.yaml文件
添加 schedule即可定时执行(此处cron使用UTC时区)