~/labs / tashqariga-ochilmasinback

Asoslar7/15

Faqat kerakli eshik ochiq bo'lsin

Bu stack'da har bir servis o'z host portiga chiqarilgan. Ya'ni serverning tashqi IP'sida PostgreSQL ham, Redis ham ochiq turibdi — bu eng ko'p uchraydigan jiddiy xatolardan biri.

  1. Faqat proxy tashqariga ochilsin: 80 host portida.
  2. api, db va cache host portiga umuman chiqarilmasin.
  3. Uchala ichki servis ichki nomli tarmoqda bo'lsin va u fayl oxirida networks: bo'limida e'lon qilinsin.
  4. proxy ham shu tarmoqqa ulansin — aks holda api ga yeta olmaydi.

Eslatma: bir tarmoqdagi servislar bir-birini servis nomi bo'yicha topadi — db:5432 ishlaydi, port ochish shart emas.

…
docker-compose.yml
✓ YAML to'g'ri · 4 servis
Tab ichkariga · Shift+Tab tashqariga⌘/Ctrl+Enter tekshirishEsc maydondan chiqish

4 servis · 0 tarmoq · 0 volume · tuzilma toza

✓ Compose e'tiroz bildiradigan narsa topilmadi. Vazifa talablari esa serverda, ishga tushirganda tekshiriladi.

Servislar 4

nginx:1.27-alpine
portlar
0.0.0.0:8080 → 80/tcp
healthcheck
yo'q
restart
no (standart)
user
root (standart)
tarmoq
default
python:3.12-alpine
portlar
0.0.0.0:8000 → 8000/tcp
healthcheck
yo'q
restart
no (standart)
user
root (standart)
tarmoq
default
postgres:16-alpine
portlar
0.0.0.0:5432 → 5432/tcp
healthcheck
yo'q
restart
no (standart)
user
root (standart)
tarmoq
default
redis:7-alpine
portlar
0.0.0.0:6379 → 6379/tcp
healthcheck
yo'q
restart
no (standart)
user
root (standart)
tarmoq
default

Ishga tushish tartibi

  1. proxyhech kimni kutmaydi
    apihech kimni kutmaydi
    dbhech kimni kutmaydi
    cachehech kimni kutmaydi