Luku 6 · 6.2
Työhakemisto: compose.yaml, .env ja Caddy
Työkalulla docker compose kuvaat kaikki konttisi yhdessä tiedostossa. Tässä oppaassa kaikki sovellukset ovat hakemistossa /srv/diensten, ja Caddy toimii etuovena, joka hoitaa https:n jokaiselle sovellukselle. Luvun 7 reseptit lisäävät tähän aina pienen palan. Miten compose ja palomuuri toimivat yhdessä, kerrotaan VPS- ja Linux-palvelinten hallinta -kurssin artikkelissa Docker compose ja palomuuri.
Hakemisto ja tiedostot
anna@web1:~$ sudo mkdir -p /srv/diensten
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo nano compose.yaml
Aloita pelkällä Caddyllä:
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:
Ja Caddyfile samaan hakemistoon:
{
email beheer@example.com
}
Riviä version: tiedoston alussa ei enää tarvita; näet sen vielä vanhoissa esimerkeissä.
Käynnistys ja tarkastelu
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 käynnistää kaiken taustalle. Näppäinyhdistelmällä Ctrl+C lopetat lokien seuraamisen; kontit jäävät käyntiin. Jos muokkaat Caddyfileä, lataa se uudelleen komennolla:
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Salaisuudet .env-tiedostossa
Salasanoja ja tunnisteita (tokeneita) et laita tiedostoon compose.yaml, vaan samassa hakemistossa olevaan tiedostoon .env. Tiedostossa compose.yaml viittaat niihin muodossa ${NAAM}.
anna@web1:/srv/diensten$ sudo nano .env
anna@web1:/srv/diensten$ sudo chmod 600 .env
Älä koskaan lisää tiedostoa .env Gitiin äläkä jaa sitä.
Onko Caddy jo asennettu palvelimellesi palveluna?
Jos olet asentanut Caddyn tai nginxin luvun 5 ohjeiden mukaan, portit 80 ja 443 ovat jo varattuja. Valitse toinen kahdesta:
- Poista palvelimen palvelu käytöstä (
sudo systemctl disable --now caddytainginx) ja siirrä sivustosi hakemiston/srv/dienstenCaddyfileen. Reseptit olettavat tämän. - Tai jätä palvelu palvelimelle, jätä Caddy pois compose-tiedostosta ja julkaise jokainen sovellus vain osoitteessa
127.0.0.1(katso Docker ja palomuuri: porttien turvallinen julkaiseminen). Silloin teet jokaiselle sovellukselle käänteisen välityspalvelimen (reverse proxy) kuten artikkelissa Sovellus käänteisen välityspalvelimen takana.
