Docker / دليل حلول تحريري
مصدر COPY مفقود: افحص السياق قبل الذاكرة
احسم حدود المدخلات والتجاهل وحالة الأحرف دون توسيع الوصول أو إعادة ضبط بان مشترك.
قاعدة معرفة للقراءة فقط · بلا تعليقات عامة
تعرّف على الأعراض
تعرض BuildKit مصدراً مفقوداً أو المقتطف failed to calculate checksum. يهم موضع الخطوة ومسار المصدر، ولا يثبت المقتطف وحده فساد الذاكرة.
قد يبدو الملف بجانب Dockerfile محلياً ولا يجده بناء CI أو بعيد، أو يستبعده.dockerignore رغم وجوده.
افهم الأسباب المحتملة
- تُحسم مصادر COPY من جذر السياق المختار لا مجلد Dockerfile تلقائياً؛ يختار المعامل الأخير الجذر وتختار-f الوصفة.
- قد يسبب الغياب مجلد خاطئ أو حالة أحرف أو تجاهل ملف مولد أو عدم إنشائه. لا يوفر تنظيف الذاكرة مدخلاً لم يُرسل.
دوّن حد المجلد بدقة
سجل المجلد والأمر والوصفة والسياق والمصدر من التعليمة الفاشلة. لا تجمع أسراراً أو قائمة مجلد المستخدم. يضع المثال الوصفة داخل docker/ و app.py في الجذر، ويصح ذلك عند اختيار الجذر.
parcel-lab/
app.py
.dockerignore
docker/
Dockerfile
الشجرة مدخل معلن لا فحص قرص فعلي. تشير COPY app.py إلى ملف الجذر مع سياق parcel-lab لا docker/app.py بسبب موضع الوصفة.
افحص الوجود والتهجئة وقواعد التجاهل
افحص الملف النسبي وقواعد التجاهل وقارن app.py و App.py في نظام البناء. تحقق من توليد الملف ومراجعة المصدر في CI قبل تجهيز السياق. لا تمنح.. وصولاً خارج الحد. حافظ على سياق ضيق ولا توسع القرص لإخفاء الخطأ.
طابق السياق والوصفة دون مدخلات خفية
يختار الأمر جذر المثال والوصفة المتداخلة. هو خطة غير منفذة. يجب أن تنسخ الوصفة app.py من السياق وتعلن بقية الملفات. إن أريد ملف مولد فاجعل توليده مرحلة صريحة أو مدخلاً معتمداً موثقاً.
docker build --file docker/Dockerfile --tag parcel-api:lab .
تحدد النقطة الأخيرة الحد لا-f. ينفذ الأمر بناء وقد يتصل بباني أو سجل عند التصريح لاحقاً؛ وليس فحص محرك للقراءة ولم ينفذ هنا. لا نختلق معرّفاً أو زمناً ناجحاً.
ميّز غياب المدخل عن الفشل اللاحق
قد يتبع الإصلاح خطأ صلاحيات أو ملف تنفيذي أو بدء، ولكل منها أدلة. احفظ الخطوة والنتيجة ولا تغير السياق والهوية والصلاحيات والذاكرة معاً. لا يصلح التنظيف الواسع أو نسخ الأسرار مدخلاً مفقوداً.
تحقق من نجاح الإصلاح
أكد وجود المدخلات داخل السياق بعد التصفية. افحص الوصفة والمخرج في مختبر مؤقت مصرح مستقلاً؛ فلا يبني الدليل شيئاً. أعد فحص CI بالمراجعة والسياق والخيارات نفسها لا نجاح محلي فقط.
امنع تكرار المشكلة
- وثق البنية والأمر وراجع التجاهل وأعلن المخرجات المولدة واختبر سياق CI. استبعد الأسرار ولا تنسخ نطاقاً واسعاً إلا عن قصد.