Глава 6 · 6.2
Вашата работна папка с compose.yaml, .env и Caddy
С docker compose описвате всички свои контейнери в един файл. В това ръководство всички приложения се намират в папката /srv/diensten, а Caddy служи като входна врата, която осигурява https за всяко приложение. Рецептите в глава 7 добавят тук по нещо всеки път. Как compose и защитната стена работят заедно, ще прочетете в Docker compose и защитната стена от курса 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 спирате следенето на логовете; контейнерите продължават да работят. Ако промените Caddyfile, заредете го отново с:
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Тайни в .env
Паролите и токените не се записват в 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 и защитната стена: как да публикувате портове безопасно). Тогава създавате reverse proxy за всяко приложение, както в Приложение зад reverse proxy.
