ʕ˵ ̿ᴥ ̿˵ʔ Rem

Using Cloudflare Workers to Build Your Own Docker Image Source

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

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

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

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

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

  2. 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

输出

  1. 之后部署,执行
pnpm run deploy

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

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

  1. 给刚刚部署好的 Workers 添加一个域名 等待域名生效就可以正常使用了,一般来说在服务器上修改 /etc/docker/daemon.json,配置一下你刚搭建好的源地址就行
"registry-mirrors": [
    "https://hammal.example.com"
  ]

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