Kapitel 6 · 6.2
Din arbejdsmappe med compose.yaml, .env og Caddy
Med docker compose beskriver du alle dine containere i én fil. I denne vejledning ligger alle apps i mappen /srv/diensten, med Caddy som hoveddør, der klarer https for hver app. Opskrifterne i kapitel 7 føjer hver gang et lille stykke til her. Hvordan compose og firewallen arbejder sammen, kan du læse i Docker compose og firewallen i kurset VPS og Linux-serveradministration.
Mappen og filerne
anna@web1:~$ sudo mkdir -p /srv/diensten
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo nano compose.yaml
Start med kun Caddy:
services:
caddy:
image: caddy:2
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy-data:/data
- caddy-config:/config
volumes:
caddy-data:
caddy-config:
Og Caddyfile i samme mappe:
{
email beheer@example.com
}
En linje version: øverst er ikke længere nødvendig. Du ser den stadig i gamle eksempler.
Start og se efter
anna@web1:/srv/diensten$ sudo docker compose up -d
anna@web1:/srv/diensten$ sudo docker compose ps
anna@web1:/srv/diensten$ sudo docker compose logs -f caddy
up -d starter det hele i baggrunden. Med Ctrl+C stopper du med at følge med i loggene. Containerne kører videre. Ændrer du Caddyfile, så genindlæs den med:
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Hemmeligheder i .env
Adgangskoder og tokens skriver du ikke i compose.yaml, men i en fil .env i samme mappe. I compose.yaml henviser du til dem med ${NAAM}.
anna@web1:/srv/diensten$ sudo nano .env
anna@web1:/srv/diensten$ sudo chmod 600 .env
Læg aldrig .env i Git, og del den ikke.
Kører Caddy allerede som tjeneste på din server?
Har du installeret Caddy eller nginx som i kapitel 5, er port 80 og 443 allerede optaget. Vælg en af to muligheder:
- Slå tjenesten på serveren fra (
sudo systemctl disable --now caddyellernginx), og flyt dine sites over i Caddyfile i/srv/diensten. Det er det, opskrifterne går ud fra. - Eller lad tjenesten på serveren blive, udelad Caddy i compose, og publicér hver app kun på
127.0.0.1(se Docker og firewallen: udgiv porte sikkert). Så laver du en reverse proxy for hver app som i En app bag en reverse proxy.
