使用 Cloudflare Workers 自建 Docker 镜像源

2024 年 6 月 10 日 星期一(已编辑)
/
504
1
AI 生成的摘要
这篇文章上次修改于 2024 年 7 月 2 日 星期二,可能部分内容已经不适用,如有疑问可询问作者。

使用 Cloudflare Workers 自建 Docker 镜像源

前几天各大镜像站全部挂掉,拉取 Docker镜像就成了问题

开始我也不关心,挂了就上代理去拉,但是在我本地使用Docker的时候即使挂了代理也不能正常拉取

于是我开始找解决方案,找了一圈,发现有以下方案

  • 利用Cloudflare Workers 搭建,需要一个 域名 -> 原帖
  • 自建 Nexus 3, 需要一台国外 VPS 最好 4G内存以上,还需要一个 域名 -> 原帖
  • 使用 Github ActionDockerHub 镜像转存到阿里云私有仓库,这个只需要一个 Github 账号 -> 原帖
  • 使用 Nginx反代 ,比较适合已经有一台服务器的人 -> 原帖
  • 其他的话就是找现成的镜像源,一般这类不是很稳定,就没考虑这个

我用的第一种方案,比较简单,原帖 的教程并不是很详细,我这里完善一下

  1. 进入 Cloudflare首页 ,在左侧 Workers & Pages 中新建一个 Workers, 同时保存一下右侧的 Account ID
    Workers 起一个名字,点击 Save ,然后点击 Finish
    出现这个页面,就可以进行下一步了
  1. Fork 这个仓库Clone 到本地

    按照惯例先装依赖

    pnpm i

    然后将 wrangler.toml.sample 重命名为 wrangler.toml

    cp wrangler.toml.sample wrangler.toml

    编辑一下 wrangler.toml 文件,修改 nameaccount_id

    name = "workers的名称"
    account_id = "这里填写上面复制的 Account ID"
    main = "src/index.ts"
    workers_dev = true
    compatibility_date = "2024-06-08"
    
    kv_namespaces = [
        { binding = "HAMMAL_CACHE", id = "you kv id" }
    ]
  1. 获取一下 kv ID,执行完下面的命令会输出 id ,修改配置中的 id

    npx wrangler kv:namespace create hammal_cache
    输出

    输出
  2. 之后部署,执行。

    pnpm run deploy

    这里会提示,你即将发布一个 Workers 服务,该服务最后一次是通过 Cloudflare Dashboard 发布的,通过 Cloudflare Dashboard 所做的编辑将会被你本地的代码和配置覆盖

    输入 y , 正常会打开浏览器让你授权,授权即可,我这里因为已经部署过了,所以没有弹出来

  3. 给刚刚部署好的 Workers 添加一个域名

    等待域名生效就可以正常使用了,一般来说在服务器上修改 /etc/docker/daemon.json,配置一下你刚搭建好的源地址就行

    "registry-mirrors": [
       "https://hammal.example.com"
     ]

    我在Mac 上使用的是 Orbstack,则需要在软件中直接配置

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...