6. fejezet · 6.2
Munkakönyvtár compose.yaml és .env fájllal, valamint Caddyvel
A docker compose segítségével az összes konténerét egyetlen fájlban írhatja le. Ebben az útmutatóban minden alkalmazás a /srv/diensten mappában található, és a Caddy a bejárati ajtó, amely minden alkalmazás számára gondoskodik a https-ről. A 7. fejezet receptjei mindig egy-egy újabb részt adnak ehhez hozzá. Azt, hogy a compose és a tűzfal hogyan működik együtt, a VPS és Linux-szerver-üzemeltetés tanfolyam A Docker compose és a tűzfal című részében olvashatja.
A mappa és a fájlok
anna@web1:~$ sudo mkdir -p /srv/diensten
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo nano compose.yaml
Kezdje csak a Caddyvel:
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 Caddyfile pedig ugyanabban a mappában:
{
email beheer@example.com
}
A fájl elején egy version: sorra már nincs szükség; ezt csak régi példákban látja még.
Indítás és megtekintés
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
A up -d mindent a háttérben indít el. A Ctrl+C billentyűkkel leállíthatja a naplók követését; a konténerek tovább futnak. Ha módosítja a Caddyfile-t, töltse be újra a következővel:
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Titkok a .env fájlban
A jelszavakat és tokeneket ne a compose.yaml fájlba írja, hanem egy .env fájlba ugyanabban a mappában. A compose.yaml fájlban a ${NAAM} formában hivatkozhat rájuk.
anna@web1:/srv/diensten$ sudo nano .env
anna@web1:/srv/diensten$ sudo chmod 600 .env
A .env fájlt soha ne tegye Gitbe, és ne ossza meg senkivel.
A Caddy már szolgáltatásként is fut a szerverén?
Ha az 5. fejezet szerint telepítette a Caddyt vagy az nginx-et, akkor a 80-as és a 443-as port már foglalt. Két lehetőség közül választhat:
- Kapcsolja ki a szolgáltatást a szerveren (
sudo systemctl disable --now caddyvagynginx), és költöztesse át webhelyeit a/srv/dienstenmappában lévő Caddyfile-ba. A receptek ezt feltételezik. - Vagy hagyja a szolgáltatást a szerveren, hagyja ki a Caddyt a compose-ból, és minden alkalmazást csak a
127.0.0.1címen tegyen elérhetővé (lásd: Docker és a tűzfal: portok biztonságos közzététele). Ekkor alkalmazásonként egy reverse proxyt kell beállítania, ahogyan a(z) Alkalmazás reverse proxy mögött leírja.
