它是一个工作流。可快速构建linux平台的amd64(x86_64)和arm64的docker镜像。使用manifest合并后,
使用Github Action将国外的linux平台的Docker镜像转存到阿里云私有仓库,供国内服务器使用,免费易用
- 支持DockerHub, gcr.io, k8s.io, ghcr.io等任意仓库
- 支持最大40GB的大型镜像
- 使用阿里云的官方线路,速度快
- 拉取amd64(x86_64)和arm64架构,使用manifest合并。
- 打包镜像上传到
github
,在action界面下载。 - 打包镜像,直接上传到个人服务器上。
Action目录下Docker
工作流,可以选择相应的云和构架。需要分别配置以下参数。
启用个人实例,创建一个命名空间(ALIYUN_NAME_SPACE)
访问凭证–>获取环境变量
用户名(ALIYUN_REGISTRY_USER)
密码(ALIYUN_REGISTRY_PASSWORD)
仓库地址(ALIYUN_REGISTRY)
创建一个命名空间(TENCENT_NAME_SPACE)
访问用个人实例–>登录实例
用户名(TENCENT_REGISTRY_USER) 一串数字
密码(TENCENT_REGISTRY_PASSWORD)
仓库地址(TENCENT_REGISTRY)
Action目录下Download
工作流,可以选择相应的镜像构架,然后自动打包。
amd64
arm64
Action目录下Upload
工作流,自动拉取镜像,打包后上传到服务器。
本人服务端使用svenstaro/miniserve
的上传服务,上传链接:-H "Authorization: Basic (用户名:密码)base64" "https://服务器上传服务URL/upload?path={保存路径,主目录用/}" -F "path=@{文件完整路径}"
。
配置参数:
Authorization
:Basic (用户名:密码)base64
UPLOADURL
:https://服务器上传服务URL/upload?path={保存路径,主目录用/}
如果地址只有ipv6,需要在脚本中解开注释的ipv6模块,调用cloudflare
的ipv4
转ipv6
服务。限制和域名托管在cloudflare
上一样。
注意:如果域名是托管在cloudflare
上,上传URL直接填写IP
和端口
。因为cloudflare
对上传文件大小有限制,普通用户单个文件最大100M
。或者对大文件切分后再上传。大文件镜像最好还是使用阿里云
或腾讯云
的镜像仓库。
打包脚本是从DockerTarBuilder复制过来的。
部分灵感借鉴docker_image_pusher