Django Academy · درس

أفضل ممارسات صور الإنتاج

استخدام الإنشاء متعدد المراحل ومستخدمين غير root

الدرس 4 من 413 خطوة

أفضل ممارسات صور الإنتاج درس مجاني في Django Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Django Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Django Academy 4 دروس في المجموع.

صور أصغر وأكثر أمانًا

ينبغي أن تكون صورة الإنتاج صغيرة وآمنة. فالصورة الأخف تُنقل بسرعة أكبر، وتبدأ تشغيلها أسرع، وتوفر للمهاجمين نقاطًا أقل للاستهداف. 🛡️

استخدام البُنى متعددة المراحل

تُجمّع بنية متعددة المراحل الاعتماديات في مرحلة واحدة، ثم تنسخ النتائج فقط إلى صورة نهائية نظيفة.

FROM python:3.12 AS builder
FROM python:3.12-slim AS final

نسخ ما تحتاج إليه فقط

من مرحلة البناء، استخدم COPY --from لنسخ الحزم المثبتة فقط، واترك المترجمات ومخلفات البناء خلفك.

COPY --from=builder /usr/local/lib/python3.12 /usr/local/lib/python3.12

عدم التشغيل بصلاحيات root مطلقًا

أنشئ مستخدمًا غير root باستخدام USER حتى لا تتمكن عملية مخترقة من تعديل الحاوية أو المضيف بحرية.

RUN adduser --disabled-password appuser
USER appuser

تثبيت إصداراتك

ثبّت الإصدارات الدقيقة في requirements.txt حتى تكون عمليات البناء قابلة لإعادة الإنتاج ولا تتعطل بسبب تحديث مفاجئ.

Django==5.0.6
gunicorn==22.0.0

إبعاد الأسرار عن الصور

مرّر الأسرار عبر متغيرات environment وقت التشغيل، ولا تضع المفاتيح أو كلمات المرور داخل الصورة نفسها مطلقًا.

SECRET_KEY=${SECRET_KEY}

إضافة فحص للصحة

يتيح HEALTHCHECK لمنسّق الحاويات معرفة ما إذا كانت حاويتك تعمل فعلًا وتستجيب للطلبات.

HEALTHCHECK CMD curl -f http://localhost:8000/health || exit 1

ضبط DEBUG على False

شغّل الإنتاج دائمًا باستخدام DEBUG=False، حتى لا تكشف صفحات الأخطاء للمستخدمين الشيفرة أو الإعدادات أو تتبعات المكدس.

DEBUG = False

وضع علامات على إصداراتك

ضع على الصور علامة إصدار حقيقية، وليس latest فقط، حتى تعرف دائمًا ما الذي نُشر بالضبط وتتمكن من التراجع.

docker build -t myapp:1.4.0 .

فحص الثغرات الأمنية

نفّذ فحصًا على الصورة التي بنيتها لاكتشاف الثغرات المعروفة في الصورة الأساسية والاعتماديات مبكرًا.

docker scout cves myapp:1.4.0

ترتيب الطبقات للاستفادة من التخزين المؤقت

ضع الخطوات التي نادرًا ما تتغير أولًا، والشيفرة في النهاية، حتى تعيد معظم عمليات إعادة البناء استخدام الطبقات المخزنة مؤقتًا وتنتهي بسرعة.

تحقّق سريعًا

أي ممارسة تؤدي مباشرةً وبأكبر قدر إلى تقليص صورة الإنتاج النهائية؟

مراجعة

لقد عززت أمان صورتك: بُنى متعددة المراحل، ومستخدم غير root، وإصدارات مثبتة، وأسرار وقت التشغيل، وفحوصات للصحة، وتعطيل DEBUG. جاهز للإنتاج! 🏁

البدء مجانًا

تعلم Python مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «أفضل ممارسات صور الإنتاج» مجاني؟

نعم — نص درس «أفضل ممارسات صور الإنتاج» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Django Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Django Academy 4 دروس في المجموع.

ماذا ستتعلم في «أفضل ممارسات صور الإنتاج»؟

استخدام الإنشاء متعدد المراحل ومستخدمين غير root تتمرن على Django Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Django Academy؟

لا تُشترط خبرة سابقة. Django Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «أفضل ممارسات صور الإنتاج»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Django Academy هذا؟

نعم. كل درس في Django Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. كتابة Dockerfile لـ Django
  2. docker-compose مع Postgres وRedis
  3. Entrypoints وMigrations وcollectstatic
  4. أفضل ممارسات صور الإنتاج
← العودة إلى Django Academy