GoDasturchi
Compose Best Practices

Compose Best Practices

Compose bo'yicha yaxshi amaliyotlar

Endi Docker Compose'ning asosini bilganingizdan so'ng, uni ishlatishda ko'p dasturchilar duch keladigan bir nechta muhim qoidani ko'rib chiqamiz — bular kichik farq qilib tuyulishi mumkin, lekin loyihani sezilarli darajada barqarorroq qiladi.

1. Har doim aniq versiya ko'rsating

docker-compose.yml
# Yomon: qaysi versiya kelishi noaniq
image: postgres

# Yaxshi: aniq, takrorlanadigan
image: postgres:16.2

"Image Tags & Management" darsida ko'rgan qoidaning aynan o'zi: aniq versiya bermasangiz, ertaga boshqa dasturchi (yoki server) sizdan farqli versiyani yuklab olishi mumkin — bu "mening kompyuterimda ishlaydi" muammosini Docker'ning o'zi ichida qayta tug'diradi.

2. Health check qo'shing

docker-compose.yml
services:
  db:
    image: postgres:16.2
    healthcheck:
      test: ["CMD", "pg_isready"]
      interval: 5s
      timeout: 3s
      retries: 5

depends_on faqat "avval shu konteynerni ishga tushir" deydi — lekin baza konteyneri ishga tushgani, uning ichidagi PostgreSQL haqiqatan so'rovlarga tayyor ekanini anglatmaydi (bazaning o'zi ishga tushishi bir necha soniya davom etishi mumkin). healthcheck — "Health & Readiness Endpoints" darsida (Cloud Patterns kursida) chuqurroq ko'radigan g'oyaning Compose'dagi ko'rinishi: Docker'ga "bu servis haqiqatan tayyor bo'lgach xabar ber" deb aytadi.

3. `.env` faylini git'ga qo'shmang

Maxfiy ma'lumotlarni (parollar, API kalitlari) .env faylida saqlash odat, lekin bu faylni hech qachon git repozitoriyasiga commit qilmang — .gitignorega qo'shing. Buning o'rniga jamoa a'zolariga .env.example (haqiqiy qiymatlarsiz, faqat kalitlar nomi bilan) faylini bering.

Key Takeaway

Key Takeaway:

Aniq versiyalarni qulflang, depends_on o'rniga (yoki bilan birga) healthcheck ishlating (servis haqiqatan tayyor ekanini bilish uchun), va maxfiy ma'lumotlarni hech qachon git'ga qo'shmang.

NEXT UP

Volumes & Persistence

Compose Best Practices

Compose bo'yicha yaxshi amaliyotlar

Endi Docker Compose'ning asosini bilganingizdan so'ng, uni ishlatishda ko'p dasturchilar duch keladigan bir nechta muhim qoidani ko'rib chiqamiz — bular kichik farq qilib tuyulishi mumkin, lekin loyihani sezilarli darajada barqarorroq qiladi.

1. Har doim aniq versiya ko'rsating

docker-compose.yml
# Yomon: qaysi versiya kelishi noaniq
image: postgres

# Yaxshi: aniq, takrorlanadigan
image: postgres:16.2

"Image Tags & Management" darsida ko'rgan qoidaning aynan o'zi: aniq versiya bermasangiz, ertaga boshqa dasturchi (yoki server) sizdan farqli versiyani yuklab olishi mumkin — bu "mening kompyuterimda ishlaydi" muammosini Docker'ning o'zi ichida qayta tug'diradi.

2. Health check qo'shing

docker-compose.yml
services:
  db:
    image: postgres:16.2
    healthcheck:
      test: ["CMD", "pg_isready"]
      interval: 5s
      timeout: 3s
      retries: 5

depends_on faqat "avval shu konteynerni ishga tushir" deydi — lekin baza konteyneri ishga tushgani, uning ichidagi PostgreSQL haqiqatan so'rovlarga tayyor ekanini anglatmaydi (bazaning o'zi ishga tushishi bir necha soniya davom etishi mumkin). healthcheck — "Health & Readiness Endpoints" darsida (Cloud Patterns kursida) chuqurroq ko'radigan g'oyaning Compose'dagi ko'rinishi: Docker'ga "bu servis haqiqatan tayyor bo'lgach xabar ber" deb aytadi.

3. `.env` faylini git'ga qo'shmang

Maxfiy ma'lumotlarni (parollar, API kalitlari) .env faylida saqlash odat, lekin bu faylni hech qachon git repozitoriyasiga commit qilmang — .gitignorega qo'shing. Buning o'rniga jamoa a'zolariga .env.example (haqiqiy qiymatlarsiz, faqat kalitlar nomi bilan) faylini bering.

Key Takeaway

Key Takeaway:

Aniq versiyalarni qulflang, depends_on o'rniga (yoki bilan birga) healthcheck ishlating (servis haqiqatan tayyor ekanini bilish uchun), va maxfiy ma'lumotlarni hech qachon git'ga qo'shmang.

NEXT UP

Volumes & Persistence