Kapitola 6 · 6.2
Váš pracovný priečinok s compose.yaml, .env a Caddy
Pomocou docker compose opíšete všetky svoje kontajnery v jednom súbore. V tejto príručke sú všetky aplikácie v priečinku /srv/diensten a Caddy slúži ako vstupná brána, ktorá pre každú aplikáciu zabezpečí https. Recepty v kapitole 7 sem zakaždým pridajú ďalšiu časť. Ako compose spolupracuje s firewallom, sa dočítate v článku Docker compose a firewall kurzu VPS a správa linuxového servera.
Priečinok a súbory
anna@web1:~$ sudo mkdir -p /srv/diensten
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo nano compose.yaml
Začnite iba 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 súbor Caddyfile v tom istom priečinku:
{
email beheer@example.com
}
Riadok version: na začiatku už nie je potrebný. Uvidíte ho ešte v starších príkladoch.
Spustenie 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šetko na pozadí. Klávesmi Ctrl+C ukončíte sledovanie logov, kontajnery bežia ďalej. Ak upravíte Caddyfile, načítajte ho znova príkazom:
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Tajné údaje v .env
Heslá a tokeny nevkladajte do compose.yaml, ale do súboru .env v tom istom priečinku. V compose.yaml sa na ne odvolávate pomocou ${NAAM}.
anna@web1:/srv/diensten$ sudo nano .env
anna@web1:/srv/diensten$ sudo chmod 600 .env
Súbor .env nikdy nevkladajte do Gitu a s nikým ho nezdieľajte.
Caddy už na vašom serveri beží aj ako služba?
Ak ste nainštalovali Caddy alebo nginx podľa kapitoly 5, porty 80 a 443 sú už obsadené. Zvoľte jednu z dvoch možností:
- Vypnite službu na serveri (
sudo systemctl disable --now caddyalebonginx) a presuňte svoje weby do súboru Caddyfile v/srv/diensten. S týmto postupom počítajú recepty. - Alebo ponechajte službu na serveri, Caddy v compose vynechajte a každú aplikáciu publikujte iba na
127.0.0.1(pozri Docker a firewall: bezpečné publikovanie portov). Potom pre každú aplikáciu vytvorte reverse proxy ako v Aplikácia za reverse proxy.
