Capitolo 6 · 6.2
La Sua cartella di lavoro con compose.yaml, .env e Caddy
Con docker compose descrive tutti i Suoi container in un unico file. In questo manuale tutte le app si trovano nella cartella /srv/diensten, con Caddy come porta d'ingresso che gestisce l'https per ogni app. Le ricette del capitolo 7 aggiungono ogni volta un piccolo pezzo a questa configurazione. Come compose e il firewall lavorano insieme lo può leggere in Docker compose e il firewall del corso VPS e gestione di server Linux.
La cartella e i file
anna@web1:~$ sudo mkdir -p /srv/diensten
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo nano compose.yaml
Inizi soltanto con 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:
E il Caddyfile nella stessa cartella:
{
email beheer@example.com
}
Una riga version: in alto non è più necessaria; la vede ancora in esempi meno recenti.
Avviare e controllare
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 avvia tutto in background. Con Ctrl+C smette di seguire i log; i container restano in esecuzione. Se modifica il Caddyfile, lo ricarichi con:
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Dati segreti in .env
Password e token non vanno inseriti in compose.yaml, ma in un file .env nella stessa cartella. In compose.yaml vi fa riferimento con ${NAAM}.
anna@web1:/srv/diensten$ sudo nano .env
anna@web1:/srv/diensten$ sudo chmod 600 .env
Non inserisca mai .env in Git e non lo condivida.
Caddy è già installato come servizio sul Suo server?
Se ha installato Caddy o nginx come descritto nel capitolo 5, le porte 80 e 443 sono già occupate. Scelga una delle due soluzioni:
- Disattivi il servizio sul server (
sudo systemctl disable --now caddyoppurenginx) e sposti i Suoi siti nel Caddyfile in/srv/diensten. È ciò che presuppongono le ricette. - Oppure lasci attivo il servizio sul server, ometta Caddy in compose e pubblichi ogni app solo su
127.0.0.1(vedere Docker e il firewall: pubblicare le porte in modo sicuro). In tal caso crei per ogni app un reverse proxy come in Un'app dietro un reverse proxy.
