No meu caso chamei o dockerfile de Dockerfile.caddy.cloudflare
, adicione dentro do arquivo o código abaixo:
# syntax=docker/dockerfile:1
FROM caddy:2.7.4-builder AS builder
RUN xcaddy build --with github.com/caddy-dns/cloudflare
FROM caddy:2.7.4
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
Este aquivo é para criar uma imagem do docker copilada com o plugin da cloudflare.
Adicione o código abaixo no arquivo docker-compose.yaml
. Agora você vai precisar da chave API da Cloudflare
, adicione ela no local marcado no arquivo.
version: '3.8' #https://docs.docker.com/compose/compose-file/compose-versioning/
services:
caddy_cloudflare:
image: cleytonferrari/caddy.cloudflare
build:
context: .
dockerfile: Dockerfile.Caddy.CloudFlare
container_name: caddy.cloudflare
restart: always
deploy:
resources:
limits:
memory: 256M
reservations:
memory: 128M
ports:
- 80:80
- 443:443
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-config:/config
- ./caddy-data:/data
networks:
- caddy-network
environment:
- CF_API_TOKEN=COLE AQUI SUA CHAVE API DA CLOUDFLARE
networks:
caddy-network:
name: caddy-network
driver: bridge
Adicione o código abaixo no arquivo Caddyfile
, este é um exemplo, aqui você deve alterar para o seu dominio e apontar para o serviço que você quer expor.
#aqui você troca pelo seu dominio
https://seudominio.com.br:443 {
tls {
dns cloudflare {env.CF_API_TOKEN}
}
encode gzip
#aqui você coloca o ip do seu serviço e porta
reverse_proxy http://192.168.130.253:5660 {
header_up X-Real-IP {remote_host}
}
}