0Pricing
DevOps Bootcamp · درس

البناء متعدد المراحل والصور الأصغر

تعلّموا كيف تتيح Dockerfiles متعددة المراحل شحن صور إنتاجية صغيرة بفصل أدوات البناء عن بيئة التشغيل النهائية، مما يقلل حجم الصورة كثيرًا

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

أهمية حجم الصورة

تكون الصور الكبيرة أبطأ في البناء والدفع والسحب، كما أنها توفر مساحة أكبر للهجوم. ويتمثل هدف هندسي جيد في شحن أصغر صورة لا تزال تشغّل تطبيقك.

مشكلة التضخم

غالبًا ما يتطلب بناء التطبيق compilers واعتماديات التطوير وأدوات البناء. إذا انتهى الأمر بهذه العناصر داخل الصورة النهائية، فسيزداد حجمها كثيرًا — رغم أن التطبيق قيد التشغيل لا يحتاج إلى أي منها.

ما هو البناء متعدد المراحل؟

يستخدم multi-stage build عدة عبارات FROM في Dockerfile واحد. تبني المراحل المبكرة التطبيق؛ ثم تنسخ المرحلة النهائية العناصر الناتجة المكتملة فقط، وتترك أدوات البناء خارجها.

تسمية مرحلة

امنح المرحلة اسمًا باستخدام AS حتى تتمكن المراحل اللاحقة من الرجوع إليها.

FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci

البناء في المرحلة الأولى

تعمل مرحلة البناء على compile التطبيق أو إنشاء حزمته. تتوفر هنا كل اعتماديات التطوير وأدواته.

COPY . .
RUN npm run build

مرحلة نهائية خفيفة

ابدأ المرحلة النهائية من صورة أساسية صغيرة، ثم انسخ فقط ما يحتاج إليه التطبيق للتشغيل باستخدام COPY --from.

FROM node:20-slim
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules

Dockerfile متعدد المراحل كامل

ينتج عن دمج المراحل صورة نهائية صغيرة تحتوي على التطبيق المبني، دون أي من toolchain الخاص بالبناء.

FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-slim
WORKDIR /app
COPY --from=builder /app/dist ./dist
CMD ['node', 'dist/main.js']

اختيار صورة أساسية صغيرة

غالبًا ما تكون الصورة الأساسية العامل الأكبر. تعمل نسخ Slim وAlpine على تقليص حجم الصور بدرجة ملحوظة:

  • node:20 ~ كبيرة
  • node:20-slim ~ أصغر بكثير
  • node:20-alpine ~ الأصغر، مع مكتبات محدودة

اعتماديات الإنتاج فقط

تجاوز اعتماديات التطوير في صورة التشغيل. يؤدي التثبيت باستخدام production flag إلى إبقاء حزم الاختبار والبناء خارج الصورة.

RUN npm ci --omit=dev

استخدام .dockerignore

يُبقي ملف .dockerignore الملفات غير الضرورية خارج سياق البناء، ما يسرّع عمليات البناء ويمنع النسخ غير المقصود للأسرار أو المجلدات الضخمة.

node_modules
.git
.env
Dockerfile
*.log

قياس النتيجة

تحقق من عملك بفحص أحجام الصور. يمكن أن تكون الصورة متعددة المراحل المبنية جيدًا أصغر بكثير من صورة ساذجة أحادية المرحلة.

docker images myapp

تحقق سريع

اختبر معرفتك بالبناء متعدد المراحل.

مراجعة

لقد تعلمت كيفية شحن صور Docker خفيفة:

  • تستخدم عمليات البناء متعددة المراحل مراحل FROM متعددة في Dockerfile واحد
  • ابنِ التطبيق في مرحلة مبكرة، ثم استخدم COPY --from لنسخ العناصر الناتجة فقط إلى مرحلة نهائية خفيفة
  • اختر صورًا أساسية صغيرة (slim أو alpine) وثبّت اعتماديات الإنتاج فقط
  • استخدم .dockerignore لتقليص سياق البناء

تُبنى الصور الأصغر بسرعة أكبر، وتُنشر بوتيرة أسرع، وتكون أكثر أمانًا.

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

هل درس «البناء متعدد المراحل والصور الأصغر» مجاني؟

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

ماذا ستتعلم في «البناء متعدد المراحل والصور الأصغر»؟

تعلّموا كيف تتيح Dockerfiles متعددة المراحل شحن صور إنتاجية صغيرة بفصل أدوات البناء عن بيئة التشغيل النهائية، مما يقلل حجم الصورة كثيرًا تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

كم من الوقت يستغرق درس «البناء متعدد المراحل والصور الأصغر»؟

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

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

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

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

  1. فهم Dockerfiles
  2. إنشاء صور Docker مخصّصة
  3. طبقات الصور وتحسينها
  4. البناء متعدد المراحل والصور الأصغر
← العودة إلى DevOps Bootcamp