Asosiy kontentga o‘tish

Maqolalar

Darslik · 2026-03-12 · ~2 daqiqa o‘qiladi · boshlang'ich

Docker Compose bilan development muhitini sozlash

#devops #docker #backend

Mundarija

"Menda ishlayapti-ku" — jamoadagi eng ko‘p eshitilingan ibora. Docker Compose aynan shu muammoni yechadi: butun development muhitini bitta faylda tavsiflaydi.

docker-compose.yml#

Faraz qilaylik, ilovamizga PostgreSQL va Redis kerak:

services:
  db:
    image: postgres:17-alpine
    environment:
      POSTGRES_DB: app
      POSTGRES_USER: app
      POSTGRES_PASSWORD: app
    ports:
      - "5432:5432"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U app"]
      interval: 5s
      retries: 5

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

Ishlatish#

docker compose up -d      # fon rejimida ko‘tarish
docker compose ps         # holatni ko‘rish
docker compose logs -f db # loglarni kuzatish
docker compose down       # to‘xtatish

up -d bir marta — va yangi jamoa a'zosi bir necha daqiqada bir xil muhitga ega bo‘ladi. PostgreSQL'ni qo‘lda o‘rnatish, versiya mos kelmaslik, "menda boshqacha" muammolari yo‘qoladi.

Foydali maslahatlar#

  • healthcheck qo‘ying — ilova bazaga baza tayyor bo‘lgandagina ulanadi.
  • volume qo‘shsangiz, ma'lumotlar konteyner o‘chsa ham saqlanadi: ```yaml volumes:
    • pgdata:/var/lib/postgresql/data ```
  • Port band bo‘lsa (masalan, lokal PostgreSQL 5432'da tursa), host portini o‘zgartiring: "5433:5432".

Bu sayt ham development uchun aynan shunday sozlangan — bitta docker compose up -d db va Postgres tayyor. Ishlab chiqarishda (production) esa Compose butun stack'ni boshqaradi.