Capitolul 6 · 6.2
Directorul dumneavoastră de lucru cu compose.yaml, .env și Caddy
Cu docker compose descrieți toate containerele dumneavoastră într-un singur fișier. În acest ghid, toate aplicațiile se află în directorul /srv/diensten, iar Caddy are rolul de poartă de intrare care asigură https pentru fiecare aplicație. Rețetele din capitolul 7 adaugă de fiecare dată câte o mică parte aici. Cum colaborează compose cu firewall-ul aflați din Docker compose și firewall-ul din cursul VPS și administrarea serverelor Linux.
Directorul și fișierele
anna@web1:~$ sudo mkdir -p /srv/diensten
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo nano compose.yaml
Începeți doar cu 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:
Și fișierul Caddyfile în același director:
{
email beheer@example.com
}
O linie version: la început nu mai este necesară; o mai vedeți doar în exemplele vechi.
Pornire și verificare
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 pornește totul în fundal. Cu Ctrl+C opriți urmărirea jurnalelor; containerele continuă să ruleze. Dacă modificați fișierul Caddyfile, reîncărcați-l cu:
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Secrete în .env
Nu puneți parolele și tokenurile în compose.yaml, ci într-un fișier .env din același director. În compose.yaml faceți trimitere la ele cu ${NAAM}.
anna@web1:/srv/diensten$ sudo nano .env
anna@web1:/srv/diensten$ sudo chmod 600 .env
Nu puneți niciodată .env în Git și nu îl partajați.
Caddy rulează deja ca serviciu pe serverul dumneavoastră?
Dacă ați instalat Caddy sau nginx ca în capitolul 5, porturile 80 și 443 sunt deja ocupate. Alegeți una dintre cele două variante:
- Dezactivați serviciul de pe server (
sudo systemctl disable --now caddysaunginx) și mutați site-urile dumneavoastră în fișierul Caddyfile din/srv/diensten. Aceasta este varianta pe care o presupun rețetele. - Sau păstrați serviciul de pe server, renunțați la Caddy în compose și publicați fiecare aplicație doar pe
127.0.0.1(consultați Docker și firewall-ul: publicarea în siguranță a porturilor). În acest caz, configurați pentru fiecare aplicație un reverse proxy ca în O aplicație în spatele unui reverse proxy.
