/DockerImage

使用Github Action将Docker镜像上传到阿里云供国内服务器使用,免费易用

Apache License 2.0Apache-2.0

GitHub GitHub Stars GitHub Forks

🤔 这是什么?

它是一个工作流。可快速构建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界面下载。
  • 打包镜像,直接上传到个人服务器上。

个人Docker仓库

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=@{文件完整路径}"

配置参数:

AuthorizationBasic (用户名:密码)base64

UPLOADURLhttps://服务器上传服务URL/upload?path={保存路径,主目录用/}

如果地址只有ipv6,需要在脚本中解开注释的ipv6模块,调用cloudflareipv4ipv6服务。限制和域名托管在cloudflare上一样。

注意:如果域名是托管在cloudflare上,上传URL直接填写IP端口。因为cloudflare对上传文件大小有限制,普通用户单个文件最大100M。或者对大文件切分后再上传。大文件镜像最好还是使用阿里云腾讯云的镜像仓库。

感谢

打包脚本是从DockerTarBuilder复制过来的。

部分灵感借鉴docker_image_pusher