مشروع حالة استخدام: تطبيق أفضل ممارسات حاويات Docker
مشروع حالة استخدام: تطبيق أفضل ممارسات حاويات Docker
الحالة
لديك تطبيق JavaScript نموذجي، وهو مدير قوائم مهام بسيط يعمل على Node.js، ومع ذلك لا حاجة إلى خبرة حقيقية في JavaScript. سنشغّله فقط.
المهمة
- أنشئ
Dockerfileلتغليف المشروع في حاوية. - طبّق أفضل ممارسات حاويات Docker للعمل بفعالية وفق أبرز قواعد «أفعل» و«لا تفعل».
- أنشئ خط أنابيب CI لأتمتة فحوص أفضل الممارسات.
المتطلّبات
تأكّد من تطبيق أفضل الممارسات التالية.
-
الممارسات الأساسية
- استخدم مدقّق (linter) لـ Dockerfile
- تحقّق من أفضل الممارسات الخاصة بلغة Docker
- اكتب تطبيقًا واحدًا لكل صورة Docker
- أنشئ حاويات مؤقّتة (ephemeral) قابلة للضبط
-
ممارسات الصورة
- استخدم صورة أساس (base image) مثالية
- ثبّت الإصدارات في كل مكان
- أنشئ صورة بالحجم الأمثل
- استخدم المراحل المتعدّدة (multi-stage) متى أمكن
- تجنّب أي ملفات غير ضرورية
-
ممارسات الأمان
- استخدم دائمًا صورًا موثوقة
- لا تستخدم أبدًا مصادر غير موثوقة
- لا تخزّن أبدًا بيانات حسّاسة داخل الصورة
- استخدم مستخدمًا غير جذري (non-root)
- افحص ثغرات الصورة
-
ممارسات متنوّعة
- استفد من ذاكرة بناء Docker المؤقّتة (build cache)
- تجنّب ذاكرة النظام المؤقّتة
- أنشئ صورة موحّدة عبر البيئات
- استخدم ENTRYPOINT مع CMD
إضافات
البناء:
docker build . -t docker-sample-app:v1
التشغيل:
docker run -p 3000:3000 docker-sample-app:v1
العرض:
http://localhost:3000
المصادر
- الحاويات - أساسيات Docker
- الحاويات - أفضل ممارسات Docker
- التكامل المستمر - أساسيات GitHub Actions
- التكامل المستمر - خطوط الأنابيب وبوابات الجودة