Poglavje 6 · 6.2
Vaša delovna mapa s compose.yaml, .env in Caddy
Z docker compose opišete vse svoje vsebnike v eni datoteki. V tem priročniku so vse aplikacije v mapi /srv/diensten, Caddy pa je vhodna vrata, ki za vsako aplikacijo uredijo https. Recepti v 7. poglavju sem vsakič dodajo nekaj novega. Kako compose in požarni zid delujeta skupaj, preberite v Docker compose in požarni zid iz tečaja VPS in upravljanje strežnikov Linux.
Mapa in datoteke
anna@web1:~$ sudo mkdir -p /srv/diensten
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo nano compose.yaml
Začnite samo 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:
In datoteka Caddyfile v isti mapi:
{
email beheer@example.com
}
Vrstica version: na vrhu ni več potrebna; vidite jo le še v starejših primerih.
Zagon in pregled
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 zažene vse v ozadju. S Ctrl+C prenehate spremljati dnevnike; vsebniki še naprej delujejo. Če spremenite Caddyfile, ga znova naložite z:
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Skrivnosti v .env
Gesel in žetonov ne vpišete v compose.yaml, temveč v datoteko .env v isti mapi. V compose.yaml se nanje sklicujete z ${NAAM}.
anna@web1:/srv/diensten$ sudo nano .env
anna@web1:/srv/diensten$ sudo chmod 600 .env
Datoteke .env nikoli ne dodajte v Git in je ne delite z drugimi.
Caddy na Vašem strežniku že teče kot storitev?
Če ste Caddy ali nginx namestili kot v 5. poglavju, sta vrati 80 in 443 že zasedeni. Izberite eno od dveh možnosti:
- Storitev na strežniku izklopite (
sudo systemctl disable --now caddyalinginx) in svoja spletna mesta preselite v Caddyfile v/srv/diensten. To predvidevajo recepti. - Ali pa storitev na strežniku pustite, Caddy v compose izpustite in vsako aplikacijo objavite samo na
127.0.0.1(glejte Docker in požarni zid: varna objava vrat). Nato za vsako aplikacijo nastavite povratni posredniški strežnik (reverse proxy), kot je opisano v Aplikacija za obratnim posrednikom (reverse proxy).
