FROM caddy:builder AS builder
RUN xcaddy build \
    # 用于直接使用Nginx的配置,解析nginx.conf文件，然后转换为json 格式
    --with github.com/caddyserver/nginx-adapter \
	# 支持接收代理协议，官方已集成
    # --with github.com/mastercactapus/caddy2-proxyprotocol \
	# 官方编译站点中找不到这个
    # --with github.com/hadi77ir/caddy-websockify \
    --with github.com/caddyserver/replace-response \
    # 用于对响应的body执行子字符串或正则表达式替换
    --with github.com/caddyserver/transform-encoder \
    --with github.com/abiosoft/caddy-json-parse \
	# 支持在更低网络层次上的处理
    --with github.com/mholt/caddy-l4 \
    --with github.com/mholt/caddy-dynamicdns \
    --with github.com/abiosoft/caddy-exec \
    --with github.com/greenpau/caddy-trace \
    --with github.com/porech/caddy-maxmind-geolocation \
    --with github.com/shift72/caddy-geo-ip \
    --with github.com/caddy-dns/cloudflare \
    --with github.com/WeidiDeng/caddy-cloudflare-ip \
    --with github.com/dunglas/mercure/caddy \
    --with github.com/dunglas/vulcain/caddy \
    --with github.com/mholt/caddy-webdav \
    --with github.com/greenpau/caddy-security \
    --with github.com/WingLim/caddy-webhook \
    # --with github.com/caddy-dns/route53 \
    # --with github.com/caddy-dns/dnspod \
    --with github.com/caddy-dns/alidns \
    --with github.com/caddy-dns/duckdns

FROM caddy
COPY --from=builder /usr/bin/caddy /usr/bin/caddy

# 暴露端口
EXPOSE 80 443 8443

# 设置启动命令
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
