Skip to content

使用Github Action将国外的Docker镜像转存到阿里云私有仓库,供国内服务器使用,免费易用

License

Notifications You must be signed in to change notification settings

Troy-Mark/docker-images-push-huaweicloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Docker Images Pusher huaweicloud

使用Github Action将国外的Docker镜像转存到华为云私有仓库,供国内服务器使用,免费易用

  • 支持DockerHub, gcr.io, k8s.io, ghcr.io等任意仓库

本项目参考了大佬技术爬爬虾的 (https://github.com/tech-shrimp/me) 项目

使用方式

配置华为云

获取长期访问指令

华为云首页:https://www.huaweicloud.com/
登录华为云,首页搜索容器,选择容器镜像服务 SWR
image

点击控制台进入容器管理页面
image


在镜像服务控制台总览页面,选择右上角的登陆指令
image

生成长期登陆指令并复制指令
image

例如长期登陆指令为:

docker login -u cn-north-4@NKXXXXXXXXXXS -p 2xxxxxxxxxxxxxx6a2 swr.cn-north-4.myhuaweicloud.com

需要保存三个值,后面会用到:
华为云用户名:cn-north-4@NKXXXXXXXXXXS
华为云用户密码:2xxxxxxxxxxxxxx6a2
华为云仓库地址:swr.cn-north-4.myhuaweicloud.com

创建组织

镜像服务控制台页面选择组织管理,然后创建组织,并复制组织名称
image

现在已经获取到了到了四个值,以下四个变量分别代表:

HW_REGISTRY:华为云仓库地址
HW_ORG_NAME:华为云组织名称
HW_REGISTRY_USER:华为云用户名
HW_REGISTRY_PASSWORD:华为云用户密码

Fork本项目

Fork本项目

启动Action

进入自己的项目,点击Action,启用Github Action功能

配置环境变量

进入Settings->Secret and variables->Actions->New Repository secret
将上一步的四个值
HW_REGISTRY,HW_ORG_NAME,HW_REGISTRY_USER,HW_REGISTRY_PASSWORD
配置成环境变量
image

添加镜像

json文件内容

打开images.json文件,根据docker官方的镜像信息填写需要同步的镜像信息

  • image字段:填写镜像仓库地址,支持以下格式:
    • 官方镜像
    • 第三方镜像:bitnami/nginx → 保持原命名空间
    • 带标签镜像:alpine:3.18 → 自动剥离标签保留名称
  • version字段:镜像版本号,如latest,noble-20250127等。
  • architectures字段:填写镜像的系统架构,支持同步多架构的镜像,需与Docker官方平台标识的架构严格对应,对应关系如下。
    • linux/386:386
    • linux/amd64:amd64
    • linux/arm/v5:armv5
    • linux/arm/v6:armv6
    • linux/arm/v7:armv7
    • linux/arm64/v8:arm64v8
    • linux/mips64le:mips64le
    • linux/ppc64le:ppc64le
    • linux/s390x:s390x

示例

nginx镜像信息如下:
image
ubuntu镜像信息如下:
image
根据图中所示的信息编写的json文件如下:

[
    {
    "image": "ubuntu",
    "version": "noble-20250127",
    "architectures": [
      "amd64", 
      "armv7",
      "arm64v8",
      "ppc64le",
      "riscv64",
      "s390x"
    ]
  },
  {
    "image": "nginx",
    "version": "stable-perl",
    "architectures": [
      "386",
      "amd64",
      "armv5"
    ]
  },
]

提交文件后,会自动执行Github Action,向华为云镜像仓库上传镜像

使用镜像

回到华为云,镜像仓库,点击任意镜像,可查看镜像状态,可以改成公开,拉取镜像免登录。
image
要在服务器上拉取华为云镜像仓库中的镜像, 具体使用方法请打开仓库中的镜像详情查看。
image

定时执行

修改/.github/workflows/docker.yaml文件 添加 schedule 即可定时执行(此处cron使用UTC时区)

name: Scheduled Task
on:
  schedule:
    - cron: '0 0 * * *'  # 每天UTC时间00:00执行(北京时间08:00)
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Run Script
        run: echo "定时任务已执行"

About

使用Github Action将国外的Docker镜像转存到阿里云私有仓库,供国内服务器使用,免费易用

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published