Κεφάλαιο 6 · 6.2
Ο φάκελος εργασίας σας με compose.yaml, .env και Caddy
Με το docker compose περιγράφετε όλα τα containers σας σε ένα μόνο αρχείο. Σε αυτόν τον οδηγό όλες οι εφαρμογές βρίσκονται στον φάκελο /srv/diensten, με το Caddy ως κεντρική είσοδο που φροντίζει το https για κάθε εφαρμογή. Οι συνταγές του κεφαλαίου 7 προσθέτουν κάθε φορά ένα κομμάτι εδώ. Πώς συνεργάζονται το compose και το firewall, μπορείτε να διαβάσετε στο Docker compose και το firewall του σεμιναρίου VPS και διαχείριση διακομιστή Linux.
Ο φάκελος και τα αρχεία
anna@web1:~$ sudo mkdir -p /srv/diensten
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo nano compose.yaml
Ξεκινήστε μόνο με το 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:
Και το Caddyfile στον ίδιο φάκελο:
{
email beheer@example.com
}
Μια γραμμή version: στην αρχή δεν χρειάζεται πλέον. Θα τη δείτε ακόμη σε παλιά παραδείγματα.
Εκκίνηση και παρακολούθηση
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 εκκινεί τα πάντα στο παρασκήνιο. Με Ctrl+C σταματάτε την παρακολούθηση των logs, ενώ τα containers συνεχίζουν να λειτουργούν. Αν τροποποιήσετε το Caddyfile, φορτώστε το ξανά με:
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Μυστικά στο .env
Κωδικούς πρόσβασης και tokens δεν τα βάζετε στο compose.yaml, αλλά σε ένα αρχείο .env στον ίδιο φάκελο. Στο compose.yaml παραπέμπετε σε αυτά με ${NAAM}.
anna@web1:/srv/diensten$ sudo nano .env
anna@web1:/srv/diensten$ sudo chmod 600 .env
Μην προσθέτετε ποτέ το .env στο Git και μην το κοινοποιείτε.
Το Caddy λειτουργεί ήδη ως υπηρεσία στον διακομιστή σας;
Αν έχετε εγκαταστήσει Caddy ή nginx όπως στο κεφάλαιο 5, οι θύρες 80 και 443 είναι ήδη κατειλημμένες. Επιλέξτε ένα από τα δύο:
- Απενεργοποιήστε την υπηρεσία στον διακομιστή (
sudo systemctl disable --now caddyήnginx) και μεταφέρετε τις ιστοσελίδες σας στο Caddyfile στο/srv/diensten. Αυτό προϋποθέτουν οι συνταγές. - Ή αφήστε την υπηρεσία στον διακομιστή, παραλείψτε το Caddy στο compose και δημοσιεύστε κάθε εφαρμογή μόνο στο
127.0.0.1(δείτε Docker και firewall: ασφαλής δημοσίευση θυρών). Τότε δημιουργείτε για κάθε εφαρμογή ένα reverse proxy όπως στο Μια εφαρμογή πίσω από reverse proxy.
