العودة إلى الدورة

الدرس 25: Docker Ignore وتعمق في سياق البناء (Build Context)

Docker من الصفر إلى الاحتراف: الدورة الشاملة لتغليف التطبيقات (Containerization) للمبتدئين

الدرس 25: Docker Ignore وتعمق في سياق البناء (Build Context)

عندما تنفذ docker build .، يقوم عميل Docker بتغليف المحتويات الكاملة للدليل الحالي (سياق البناء) وإرسالها إلى خفي Docker. يحدث هذا النقل حتى إذا كان الخفي يعمل محلياً، وقد يكون بطيئاً إذا كان السياق كبيراً.

التحكم في سياق البناء باستخدام .dockerignore

يعمل ملف .dockerignore بشكل مشابه لملف .gitignore. يسرد الملفات والأدلة التي يجب استبعادها من سياق البناء المرسل إلى الخفي.

فوائد .dockerignore الجيد:

  1. السرعة: نقل أسرع للسياق، خاصة عبر اتصال عن بُعد.
  2. الكفاءة: يمنع الملفات الكبيرة وغير الضرورية (مثل غيغابايت من السجلات أو الذاكرة المخبأة المؤقتة) من شغل مساحة في طبقات الصورة.
  3. الأمان: يمنع النسخ العرضي للملفات الحساسة (مثل مفاتيح API أو الإعدادات المحلية) إلى الصورة.

أمثلة أساسية لـ .dockerignore

التبعيات والمخرجات المجمعة

**/node_modules pycache/ target/

التحكم في المصدر والبيانات الوصفية

.git .vscode

السجلات والملفات المؤقتة

*.log tmp/

استكشاف مشكلات سياق البناء وإصلاحها

إذا تلقيت خطأ يفيد بأن ملفاً محدداً في COPY لا يمكن العثور عليه، تحقق من مكانين:

  1. Dockerfile: هل المسار صحيح بالنسبة لـ Dockerfile؟
  2. .dockerignore: هل يتم تجاهل الملف عن طريق الخطأ؟ إذا كان الأمر كذلك، فلن يكون جزءاً من السياق المرسل إلى الخفي، ولن يتمكن Docker من نسخه.