- 利用 GitHub 的服务器资源和私有镜像仓库实现 Copy Docker Hub 或其他国外镜像仓库的镜像到国内私有或公开镜像仓库;
- 需要自行准备私有镜像仓库的账号,比如阿里云、华为云等;
- 支持自动构建多平台的镜像,例如copy到私有仓库后,拉取同一个镜像地址,在x86架构的PC机上拉取的是amd64版本,在arm架构的服务器上拉取的就是arm64版本的镜像,不需要关心镜像CPU架构问题。
在项目settings->Secrets and variables->Actions
添加私有仓库的用户名和密码。变量名使用:REGISTRY_USER
和REGISTRY_PASSWORD
,也可以在registry_env.sh
文件内添加环境变量。
在registry_env.sh
文件添加REGISTRY
和NAMESPACE
环境变量,分别是私有镜像仓库的地址和命名空间。
在images_to_copy.txt
文件内添加需要copy到私有仓库的镜像名,支持 #
, //
, --
注释。
格式:目标镜像名称:目标镜像tag 私有仓库镜像名称:私有仓库镜像tag
如果不需要改写镜像名称或tag,可仅填写原始镜像名称和tag,例如
# quay.io/minio/minio:RELEASE.2024-07-16T23-46-41Z minio:20240716
nginx:1.27.0
nginx
等待 GitHub Action workflow 自动构建完成。
如果需要添加通知,可在 https://github.com/settings/notifications 地址将Action的通知策略的Only notify for failed workflows
取消勾选,这样无论构建成功或失败都会收到通知,默认仅失败通知。