首页 > 其他分享 >基于cloudflare workers自建docker镜像

基于cloudflare workers自建docker镜像

时间:2024-06-08 10:11:01浏览次数:24  
标签:wrangler workers 镜像 docker cloudflare id hammal

缘由

因为近期国内镜像站点的变动,自建docker镜像也提上了日程。顺便发现了Hammal这个优秀的项目。

Hammal 是运行于 cloudflare workers 上的 Docker 镜像加速工具,用于解决获取 Docker 官方镜像速度缓慢以及完全无法获取 k8s.gcr.io 上镜像的问题。

在这里感谢如下两个项目

tomwei7/hammal: docker-registry proxy run in cloudflare workers (github.com)

pengfujin-momo/hammal: docker-registry proxy run in cloudflare workers (github.com)

使用姿势

首先安装 wrangler 命令行工具, 并登录

npm install -g wrangler
wrangler login

克隆或者下载项目到本地

并在文件夹目录下操作

git clone https://github.com/tomwei7/hammal.git 
cd hammal
mv wrangler.toml.sample wrangler.toml

参考wrangler.toml.sample,进行如下修改并保存为wrangler.toml

获取 account_id id, 并修改 wrangler.toml 文件中的 account_id id

wrangler whoami

创建 KV namespace

wrangler kv:namespace create hammal_cache

上面的代码别改kv名称,代码中还有依赖(

修改 wrangler.toml 文件填充 kv_namespaces 中的 id

另,原作者的wrangler.toml.sample缺少如下两行,手动添加上去,否则部署会报错~

main = "src/index.ts"
compatibility_date = "2022-10-29"

修改后的代码大致长这样

name = "hammal"
type = "webpack"
main = "src/index.ts"
compatibility_date = "2022-10-29"
account_id = "your account_id"
workers_dev = true
route = ""
zone_id = ""
webpack_config = "webpack.config.js"
kv_namespaces = [
	 { binding = "HAMMAL_CACHE", id = "you kv id" }
]

最后发布 workers,大功告成~~

wrangler deploy

发布 workers 可以获得类似 https://hammal.{your_name}.workers.dev  的地址,修改 registry-mirrors 地址为该地址即可。但是强烈建议前往workers-设置-触发器 中绑定自己的域名。官方workers.dev访问效果不佳。

<<EOF sudo tee /etc/docker/daemon.json
{
  "registry-mirrors": [
    "你的域名"
  ]
}
EOF

添加其他镜像源镜像

目前 hammal 支持获取 k8s.gcr.io, gcr.io, quay.io 的镜像,可以通过修改 handler.ts 中的 ORG_NAME_BACKEND 添加

# 拉取 k8s.gcr.io 镜像
docker pull hammal.{your_name}.workers.dev/k8sgcr/kubernetes-dashboard-amd64:v1.8.3

# 拉取 gcr.io 镜像
docker pull hammal.{your_name}.workers.dev/gcr/youlib/image:tags

# 拉取 quay.io 镜像
docker pull hammal.{your_name}.workers.dev/quay/coreos/flannel:v0.13.1-rc2

标签:wrangler,workers,镜像,docker,cloudflare,id,hammal
From: https://www.cnblogs.com/xuanli233/p/18238354

相关文章

  • 解决Docker遇到error NU1301: Unable to load the service index for source https://
    解决Docker容器内无法通过HTTPS访问外部网络的问题在使用Docker构建.NET项目时,有时会遇到无法通过HTTPS访问外部网络的问题,导致dotnetrestore命令无法从NuGet源下载依赖项。本文将介绍一种通过修改Docker配置文件config.json来解决该问题的方法。问题描述在......
  • Mysql 8.4.0 结合 Docker 搭建GTID主从复制,以及传统主从复制
    注意:本教程不适用旧版本,Mysql8.4.0和旧版本,主从复制相关命令有所变化,具体区别请看文末参考软件版本Docker:26.1.3Mysql:8.4.0 GTID主从复制1.准备主从两台服务器2.两台服务器分别创建DockerCompose文件services:mysql:image:mysql:8.4.0ports:-"3......
  • fs.1.10 ON rockylinux8 docker镜像制作
    概述freeswitch是一款简单好用的VOIP开源软交换平台。rockylinuxdocker上编译安装fs1.10版本的流程记录。环境dockerengine:Version24.0.6rockylinuxdocker:8freeswitch:v1.10.7手动模式rockylinux准备dockerhub拉取rockylinux镜像。sudodockerpullrockylinux:8......
  • Docker:基础
    Docker:基础Docker中涉及的基本概念镜像(images):由一系列文件组成。是一个静态的概念。容器(container):一个封闭的独立的运行环境。是一个动态的概念。镜像和容器的区别可以类比为系统安装中的ISO文件和操作系统的区别。ISO文件是一个静态的东西,我们可以通过ISO去安装一个......
  • 09.0手工制作docker镜像-单服务ssh
    手动将容器保存为镜像-单服务ssh本页测试内容,将centos6.9镜像安装ssh服务并提交新的镜像并可使用。dockercommit容器id或者容器的名字新的镜像名字[:版本号可选]dockercommittestcentos6.9-ssh:v11)基于容器制作镜像,首先创建一个容器dockerrun-itcentos:6.9......
  • 09.1手工制作docker镜像-多服务ssh+nginx
    手工制作docker镜像-多服务ssh+nginx一个容器多个服务基于centos6.9系统添加yum源与epel源安装nginx、ssh服务yuminstallnginxopenssh-server-y因镜像系统为纯系统,没有root密码,所以需要配置密码echo123456|passwd--stdinroot注:因配置yum源存在坑,详见cento......
  • connect your tunnel to Cloudflare
    #Formoreinformationonconfiguration,see:#*OfficialEnglishDocumentation:http://nginx.org/en/docs/#*OfficialRussianDocumentation:http://nginx.org/ru/docs/usernginx;worker_processesauto;error_log/var/log/nginx/error.log;pid/run/......
  • Docker 下载redis
    docker拉取redis镜像dockerpullredis:对应的版本号(不写默认为最新版) 查看镜像是否拉取成功dockerimages 创建redis配置文件启动前需要先创建reids的外部挂载的配置文件(/opt/docker/redis/conf/redis.conf)(因为redis本身容器只存在/etc/redis目录,本身就不创建redis......
  • 在虚拟机上搭建 Docker Kafka 宿主机器程序无法访问解决方法
    1、问题描述在虚拟机CentOS-7上搭建的DockerKafka,docker内部可以创建Topic、可以生产者数据、可以消费数据,而在宿主机开发程序无法消费Docker Kafka的数据。1.1、运行情况[docker@localhost~]$dockerps-aCONTAINERIDIMAGECOMMAND......
  • 如何升级docker的版本
    如何升级docker的版本?查看当前的docker的版本?docker--versionDockerversion1.13.1,build94f4240/1.13.1升级具体步骤:查找主机上关于docker的软件包rpm-qa|grepdocker移除相关软件包yumremove-ydocker-client-1.13.1-63.git94f4240.el7.centos.x86_64yumr......