使用 cloudflare pages 来加速访问 dockerhub 镜像。
请将本项目仓库 fork 到自己的 github 仓库,然后在 cloudflare pages 中新建项目来使用。
图1
选择 git 模式进行部署。
- 选择你 clone 好的项目,点击 开始设置 按钮:
图2
- 除了项目名字之外,所有配置项都使用默认值即可,点击 保存并部署 按钮:
图3
- 经过短暂时间的等待,如果你看到如下界面,恭喜你部署成功:
图4
- 点击 继续处理项目按钮,在展示的页面中点击 访问站点 链接,即可验证站点的部署情况,不过默认需要等几分钟才能打开网站。
图5
- 网站可访问后展示效果:
图6
更多详细使用教程参见 cloudflare page 教程(一)项目初始化 。
可以通过配置若干环境变量,来对镜像代理的行为做控制。
在 cloudflare Pages 的面板中设置环境时,需要将其设置为加密状态,否则将无法添加,这是由于我们在项目中启用了 wrangler.toml,Pages 将强制从 wrangler.toml 中读取未加密的环境变量。如果你想手动设置环境变量,要么通过 wrangler.toml 配置
vars
变量,要么通过 cloudflare dashboard 的面板设置加密变量。使用者可以根据情况做选择。
SELF_AUTH
: 镜像站是否开启自身认证功能,默认为空,设置为true
启用。默认状态下会使用官方站点进行认证,开启后会将认证请求转发到本站点上来,然后由本站点代为转发认证到官方站点。WHITE_LIST
: 镜像站允许的用户列表,多个用户之间用英文逗号分隔,默认为空。注意此环境变量必须在SELF_AUTH
为true
时才生效。WHITE_LIST
生效后,在拉取任何镜像时,你需要确保docker login
(或者podman login
) 命令之前已经调用成功,否则后端读取不到登录用户,会直接报错,不会再拉取镜像。docker login 默认会登录 docker hub 镜像站,如果你拉取镜像时写的是镜像站的域名,那么同样需要调用一遍docker login 镜像站域名
。例如你的镜像站域名是docker-registry-xxx.pages.dev
,拉取镜像的命令是docker pull docker-registry-xxx.pages.dev/library/alpine:latest
,那么需要保证之前调用docker login docker-registry-xxx.pages.dev
是成功的;如果你的拉取镜像命令是docker login alpine:latest
,则需要保证之前调用docker login
命令是成功的。