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
# 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
services:
db:
image: postgres:16.2
healthcheck:
test: ["CMD", "pg_isready"]
interval: 5s
timeout: 3s
retries: 5depends_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