Dockerize qilingan servis
Dockerize qilingan Node.js servisini GitHub Actions yordamida deploy qiling
Bu loyihaning maqsadi — oddiy Node.js servisini dockerize qilish va uni GitHub Actions yordamida masofaviy serverga deploy qilish. Shuningdek, secrets management'ni ham mashq qilasiz.
Talablar
Bu loyiha 4 qismdan iborat:
- 1-qadam — Node.js servisini yaratish
- 2-qadam — Node.js servisini dockerize qilish
- 3-qadam — Masofaviy Linux serverni sozlash
- 4-qadam — Dockerize qilingan Node.js servisini GitHub Actions yordamida masofaviy serverga deploy qilish
1-qism: Node.js servisini yaratish
Siz ikkita route'ga ega oddiy Node.js servisini yaratishingiz kerak:
/route - shunchakiHello, world!qaytaradi/secretroute - Basic Auth bilan himoyalangan
Loyihada quyidagi o'zgaruvchilarga ega .env fayli bo'lishi kerak:
SECRET_MESSAGE-/secretroute qaytarishi kerak bo'lgan maxfiy xabarUSERNAME- Basic Auth uchun foydalanuvchi nomiPASSWORD- Basic Auth uchun parol
Foydalanuvchi /secret route'ga kirganda, undan foydalanuvchi nomi va parol so'ralishi kerak. Agar foydalanuvchi nomi va parol to'g'ri bo'lsa, u maxfiy xabarni ko'ra olishi kerak. Agar foydalanuvchi nomi va parol noto'g'ri bo'lsa, u xato xabarini ko'rishi kerak.
2-qism: Node.js servisini dockerize qilish
Node.js servisi uchun Docker image build qiladigan Dockerfile yarating. Docker image'ni lokal ishga tushira olishingiz kerak. .env fayli Docker image'ga kirmaganiga ishonch hosil qiling.
3-qism: Masofaviy Linux serverni sozlash
DigitalOcean, AWS yoki boshqa istalgan provayderda masofaviy Linux server sozlang. Uni SSH orqali qo'lda sozlashingiz yoki oldingi loyihalardagi Ansible yoki Terraform'ni birgalikda qo'llashingiz mumkin.
4-qism: Dockerize qilingan Node.js servisini deploy qilish
Docker image'ni build qilib, uni container registry'ga push qiladigan workflow yarating. So'ngra workflow Docker image'ni masofaviy serverga deploy qilishi kerak. GitHub Actions'dagi secrets management'ni bemalol o'rganib chiqing. Amalga oshirish tafsilotlarini sizning ixtiyoringizga qoldiraman.
<hr />
Loyihani tugatgach, ilovalarni dockerize qilish, masofaviy serverlarni sozlash, CI/CD workflow'larini amalga oshirish va secrets management bo'yicha amaliy tajribaga ega bo'lasiz.