Docker에서 Caddy 설정
Caddy를 최근에 알게 되었는데, 개발 과정에서 생기는 대부분의 귀찮은 문제를 해결해줘서 좋다. 가장 마음에 드는건 개발 과정에서 https 인증 관련 오류를 안 봐도 된다는 점과 여러 프로젝트를 구동해도 port 마운트가 꼬일 일이 없다는 점!
docker-compose.yml
아래처럼 설정하면, caddyfile이 변경되면 알아서 반영한다. 참고로 caddy 네트워크는 사전에 생성되어 있어야 한다. 이제, 다른 docker로 구동하는 프로젝트는 모두 caddy 네트워크에 연결하면 별도로 포트를 공개할 필요가 없다.
services:
caddy:
image: caddy:latest
container_name: caddy
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./data:/data
command: ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--watch"]
restart: always
networks:
- caddy
ports:
- "80:80"
- "443:443"
networks:
caddy:
external: true인증서 등록
docker로 caddy를 구동하면, caddy trush 명령어는 사용할 수가 없다. 인증서를 별도로 등록해야 한다. 인증서는 /data 안에 있으므로, ./data/caddy/pki/authorities/local/root.crt를 찾아서 시스템에 등록하면 된다.

