
g749/caddy-with-cloudflare本镜像基于Caddy v2构建,提供每日自动更新版本,集成Cloudflare提供商模块,支持通过Cloudflare DNS验证获取SSL证书,并内置curl工具用于容器健康状态检查。适用于需要结合Cloudflare服务管理SSL证书及容器状态监控的Web服务场景。
caddy-dns/cloudflare模块,支持通过Cloudflare DNS验证方式获取Let's Encrypt等SSL证书通过以下命令启动容器,默认加载Caddy配置:
bashdocker run -d \ --name caddy-cloudflare \ -p 80:80 \ -p 443:443 \ -v ./Caddyfile:/etc/caddy/Caddyfile \ -v caddy_data:/data \ -v caddy_config:/config \ [镜像名称]
可通过Docker健康检查指令结合curl实现容器状态监控,示例Dockerfile健康检查配置:
dockerfileHEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD curl -f http://localhost:2019/health || exit 1
在docker run命令中添加--health-cmd参数直接配置:
bashdocker run -d \ --name caddy-cloudflare \ --health-cmd "curl -f http://localhost:2019/health || exit 1" \ --health-interval=30s \ --health-timeout=10s \ --health-start-period=60s \ --health-retries=3 \ -p 80:80 \ -p 443:443 \ -v ./Caddyfile:/etc/caddy/Caddyfile \ [镜像名称]
在Caddyfile中配置Cloudflare提供商以实现DNS验证(需提前准备Cloudflare API令牌):
caddyfileexample.com { tls { dns cloudflare {env.CLOUDFLARE_API_TOKEN} } # 其他站点配置(反向代理/静态文件服务等) reverse_proxy /api/* [***] file_server /static/* { root /var/www } }
启动容器时通过环境变量传入Cloudflare API令牌:
bashdocker run -d \ -e CLOUDFLARE_API_TOKEN="your-cloudflare-api-token" \ -v ./Caddyfile:/etc/caddy/Caddyfile \ -p 80:80 -p 443:443 \ [镜像名称]
:2019/health)实现,需确保该接口未被外部网络访问

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务