Kapitola 6 · 6.2
Váš pracovní adresář s compose.yaml, .env a Caddy
Pomocí docker compose popíšete všechny své kontejnery v jednom souboru. V této příručce jsou všechny aplikace v adresáři /srv/diensten a Caddy slouží jako vstupní brána, která pro každou aplikaci zajistí https. Recepty v kapitole 7 sem postupně přidávají další části. Jak spolu compose a firewall spolupracují, se dočtete v článku Docker compose a firewall z kurzu VPS a správa linuxového serveru.
Adresář a soubory
anna@web1:~$ sudo mkdir -p /srv/diensten
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo nano compose.yaml
Začněte pouze s 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:
A soubor Caddyfile ve stejném adresáři:
{
email beheer@example.com
}
Řádek version: na začátku už není potřeba. Uvidíte ho jen ve starších příkladech.
Spuštění a kontrola
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 spustí vše na pozadí. Klávesami Ctrl+C ukončíte sledování logů, kontejnery ale poběží dál. Pokud Caddyfile upravíte, načtěte ho znovu příkazem:
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Tajné údaje v .env
Hesla a tokeny neukládejte do compose.yaml, ale do souboru .env ve stejném adresáři. V compose.yaml se na ně odkážete pomocí ${NAAM}.
anna@web1:/srv/diensten$ sudo nano .env
anna@web1:/srv/diensten$ sudo chmod 600 .env
Soubor .env nikdy nedávejte do Gitu a s nikým ho nesdílejte.
Běží už Caddy na Vašem serveru jako služba?
Pokud jste nainstalovali Caddy nebo nginx podle kapitoly 5, jsou porty 80 a 443 už obsazené. Zvolte jednu ze dvou možností:
- Vypněte službu na serveru (
sudo systemctl disable --now caddynebonginx) a přesuňte své weby do souboru Caddyfile v/srv/diensten. S tímto řešením počítají recepty. - Nebo službu na serveru ponechte, Caddy v compose vynechte a každou aplikaci publikujte pouze na
127.0.0.1(viz Docker a firewall: jak bezpečně publikovat porty). Pro každou aplikaci pak vytvořte reverse proxy podle Aplikace za reverzní proxy.
