Multi-container ilova
Multi-container ilovani ishga tushirish uchun Docker Compose'dan foydalaning
Ushbu loyihaning maqsadi — production muhitida multi-container ilovani ishga tushirish uchun Docker Compose'dan foydalanishni mashq qilish. Siz Docker Compose yordamida Node.js ilovasi va MongoDB ma'lumotlar bazasini ishga tushirasiz.
Talablar
Oddiy todo ro'yxatini yaratish uchun authentication'siz, sodda Node.js API servisini yarating. API quyidagi endpoint'larga ega bo'lishi kerak:
GET /todos— barcha todo'larni olishPOST /todos— yangi todo yaratishGET /todos/:id— bitta todo'ni id bo'yicha olishPUT /todos/:id— bitta todo'ni id bo'yicha yangilashDELETE /todos/:id— bitta todo'ni id bo'yicha o'chirish
Todo elementlarini saqlash uchun API MongoDB'ga ulanishi kerak. API uchun Express'dan, MongoDB'ga ulanish uchun esa Mongoose'dan foydalanishingiz mumkin. Manba kodi o'zgarganda serverni avtomatik qayta ishga tushirish uchun nodemon'dan foydalanishingiz mumkin.
1-talab — API'ni dockerize qilish
Siz API'ni dockerize qilishingiz va MongoDB container'i hamda API container'ini ishga tushiradigan docker-compose.yml fayliga ega bo'lishingiz kerak. Hammasi to'g'ri ishlasa, API'ga http://localhost:3000 orqali kira olishingiz va todo'lar MongoDB container'ida saqlanishi kerak. Container'lar to'xtatilib, qayta ishga tushirilganda ham ma'lumotlar saqlanib qolishi kerak.
2-talab — Remote server'ni sozlash
Digital Ocean, AWS yoki boshqa istalgan cloud provider'da remote server sozlang. Serverni yaratish uchun Terraform'dan, uni to'g'ri sozlash uchun esa Ansible'dan foydalanishingiz kerak: ya'ni docker, docker-compose'ni o'rnatish, image'ni Docker Hub'dan pull qilish va container'larni ishga tushirish.
3-talab — CI/CD pipeline'ni sozlash
Lokal muhitda hammasi ishlagach, kodingizni GitHub'ga push qiling va ilovani remote server'ga deploy qilish uchun CI/CD pipeline sozlang. Pipeline'ni sozlash uchun GitHub Actions'dan foydalanishingiz mumkin. Production muhitida ilovani ishga tushirish uchun albatta docker-compose'dan foydalaning.
Bonus — Reverse proxy'ni sozlash
Ilovaga http://your_domain.com orqali kirish imkonini berish uchun Nginx yordamida reverse proxy sozlang. Reverse proxy'ni sozlash uchun docker-compose'dan foydalanishingiz kerak.
<hr />
Ushbu loyihani tugatgach, Docker Compose, multi-container ilovalar, CI/CD pipeline'lar va boshqa mavzular haqida yaxshi tushunchaga ega bo'lasiz.