Caddy自动申请HTTPS
用Docker部署Caddy
Docker 仓库里的2.0版本的caddy没有包含使用 dns-01 方式申请证书的 tls dns cloudflare 模块,需要自己使用 官方的构建镜像 caddy:builder 构建包含域名模块的 caddy docker 镜像。2.0版本的 DNS provider 模块地址 https://github.com/caddy-dns
docker pull caddy:builder构建镜像的Dockerfile文件如下,添加 cloudflare 模块。如果使用国内域名解析服务请添加lego-deprecated 模块
FROM caddy:2.0.0-builder AS builder
RUN caddy-builder \
github.com/caddy-dns/cloudflare
github.com/caddy-dns/lego-deprecated #更多的dns provider
FROM caddy:2.0.0
COPY --from=builder /usr/bin/caddy /usr/bin/caddy国内使用docker 构建镜像因为网络问题,需要使用代理
export https_proxy="socks5://serverip:port"构建镜像
docker build --network host --build-arg https_proxy -t quadword/caddy:1.0 .caddy docker 镜像构建完成后就可以使用了
docker run -d --name caddy -p 80:80 -p 443:443 -p 2019:2019 quadword/caddyCaddyfile 配置
cloudflare tls 的 token 可以直接写在 caddyfile 里
tls {
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
dns lego_deprecated dnspod #DNSPOD 的写法
}在docker-compose.yml 文件里添加环境变量
environment:
DNSPOD_API_KEY: "id,token" # 值为 ID,TOKEN 注意这个值的格式
DNSPOD_HTTP_TIMEOUT: 10000 #单位毫秒,10秒 避免timeout错误网络条件好可以不用设置最后更新于
这有帮助吗?