这是一个基于 Github Action 的工具,可以自动将国外的 Docker 镜像同步到阿里云私有仓库,方便国内服务器使用。
- 支持多种镜像源:DockerHub、gcr.io、k8s.io、ghcr.io 等
- 支持大型镜像:单个最大支持 40GB
- 使用阿里云官方线路:传输速度快
- 支持多架构:可指定 arm64、amd64 等
- 支持定时同步:可配置自动更新
-
开通个人实例服务
-
获取访问凭证:
-
Fork 本项目到您的账号下
-
启用 Actions:
- 进入您的项目
- 点击 Actions 标签页
- 确认启用 Github Actions
-
配置密钥:
编辑 schedule.txt 文件,按需添加镜像。支持以下格式:
# 基础格式
nginx
# 指定版本
mysql:8.0
# 指定架构
--platform=linux/arm64 redis:latest
# 指定私有仓库
k8s.gcr.io/kube-state-metrics/kube-state-metrics
# 使用注释
# 这是一个注释
docker pull registry.cn-hangzhou.aliyuncs.com/your-namespace/image-name
原始镜像名将按以下规则转换:
# 基础镜像
mysql:8.0 => mysql:8.0
# 带路径的镜像
bitnami/mysql:8.0 => bitnami-mysql:8.0
# 带 SHA 的镜像
bitnami/mysql:8.0@sha256:xxx => bitnami-mysql:8.0
# 指定架构的镜像
--platform=linux/arm64 bitnami/mysql:8.0 => bitnami-mysql:8.0-linux-arm64
# 私有仓库镜像
gcr.io/cadvisor/cadvisor:v0.39.3 => gcr.io-cadvisor-cadvisor:v0.39.3
编辑 .github/workflows/schedule.yaml
文件中的 schedule 部分可设置定时执行:
schedule:
# UTC 时间星期日 18 点(北京时间周一早上 2 点)
- cron: '0 18 * * 0'
注意:cron 表达式使用 UTC 时区