Omnikit
المطورونالملفاتالمالجميع الأدوات
Ctrl K
أدوات المطورينأدوات الملفاتالحاسبات الماليةجميع الأدوات
الرئيسيةأدوات المطورينمدقق Dockerfile
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

مدقق Dockerfile

مطورون

افحص ملف Dockerfile وفق 55 قاعدة من hadolint: الإصدارات المثبتة ومستخدم root وذاكرة التخزين المؤقت والمزيد

يعمل في متصفحك. لا يُرسل أي شيء تكتبه إلى أي مكان. تم التحقق في 16 أكتوبر 2026.

يقرأ مدقق Dockerfile الملف دون بنائه، ويحدد الأسطر الخطرة أو المُهدِرة. يطبّق هذا المدقق 55 قاعدة من قواعد DL في hadolint، مثل DL3008 للحزم المثبّتة عبر apt-get دون تحديد إصدار، وDL3002 للتشغيل بصلاحيات root، ويعطي كل ملاحظة سطرها ومستواها وطريقة إصلاحها. يعمل في متصفحك، دون تثبيت ودون Docker.

تُرجمت هذه الصفحة آليًا من الأصل الإنجليزي. لم يراجع أي شخص هذه الترجمة بعد، لذا فالنسخة الإنجليزية هي التي يُعتمد عليها. اقرأ الأصل الإنجليزي

التالي:
  • مدقق ملفات .env افحص ملف .env سطرًا بسطر كما يقرؤه dotenv، وحوّله إلى JSON أو YAML
  • systemd OnCalendar Tester Check a systemd timer OnCalendar= value and see its next run times, or convert cron

كيفية فحص ملف Dockerfile عبر الإنترنت

1

الصق ملف Dockerfile في المربع، أو افتح الملف، أو انقر على جرّب مثالًا.

2

اقرأ الملاحظات مرتبة حسب السطر: لكل منها مستوى ورمز hadolint ووصف المشكلة وطريقة إصلاحها.

3

انقر على ملاحظة للانتقال إلى سطرها، وأصلحه، وشاهد القائمة تتحدّث أثناء الكتابة.

4

انقر على نسخ التقرير لأخذ الملاحظات نصًّا، لطلب سحب (pull request) أو تذكرة.

حول مدقق Dockerfile

قد يُبنى ملف Dockerfile اليوم ويتعطّل الشهر القادم: صورة أساسية دون إصدار مثبّت تتغيّر، وأمر apt-get install يجلب إصدارًا جديدًا، وذاكرة تخزين مؤقت متروكة في طبقة تجعل الصورة أكبر بمئات الميغابايت. يكتشف المدقق ذلك قبل النشر. hadolint هو الأداة المعيارية في خطوط CI؛ وهذه الصفحة تطبّق قواعده الخاصة بملفات Dockerfile في متصفحك.

ما الذي يُفحص. تذكر كل ملاحظة سطرها ورمز hadolint ومستوى وإصلاحًا في سطر واحد. تنقسم القواعد إلى خمس مجموعات:

المجموعة أمثلة
بناء قابل للتكرار DL3006 صورة دون وسم، DL3007 latest، DL3008 apt-get، DL3013 pip، DL3016 npm، DL3018 apk
صور أصغر DL3009 قوائم apt، DL3015 recommends، DL3019 ذاكرة apk المؤقتة، DL3042 ذاكرة pip المؤقتة، DL3059 طبقات RUN زائدة
الأمان DL3002 مستخدم root، DL3004 sudo، DL4006 pipefail
الصحة DL3011 نطاق المنافذ، DL3021 وجهة COPY، DL3022 وDL3023 أسماء المراحل، DL3044 ENV، DL3061 الترتيب
وضوح القصد DL3000 WORKDIR، DL3003 cd، DL3020 ADD، DL3025 CMD بصيغة JSON، DL4000 MAINTAINER

مدى قربه من hadolint. كُتبت القواعد انطلاقًا من الشيفرة المصدرية لـ hadolint 2.12، وتستخدم الاختبارات إجابات برنامج hadolint الحقيقي لأكثر من 80 ملف Dockerfile: الرموز نفسها في الأسطر نفسها، في كل مرة. البناء متعدد المراحل وONBUILD وأسطر المتابعة وتوجيه escape وتعليقات # hadolint ignore= المضمّنة تتصرف كما في hadolint. لا تشمل الصفحة تحذيرات SC من ShellCheck حول شيفرة الصدفة داخل أسطر RUN.

إيقاف قاعدة. ضع # hadolint ignore=DL3008 في السطر الذي يسبق التعليمة لتخطّي تلك القاعدة هناك، أو # hadolint global ignore=DL3059 في أي مكان لتخطّيها في الملف كله. يذكر الملخّص عدد الملاحظات التي أُوقفت.

كل شيء يعمل في متصفحك: ملف Dockerfile الذي تلصقه أو تفتحه لا يُرفع أبدًا.

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

ماذا يعني DL3008 في hadolint؟

يشير DL3008 إلى أن سطر apt-get install يذكر حزمًا دون إصدارات، فقد يثبّت كل بناء شيئًا مختلفًا. اكتب الحزمة=الإصدار، مثل curl=7.88.1-10+deb12u5، واعرف الإصدار الحالي بالأمر apt-cache policy curl داخل الصورة الأساسية. تثبيت الإصدارات يجعل الصورة قابلة للتكرار؛ حدّثها عن قصد لا مصادفة.

لماذا يجب ألا يكون آخر USER هو root؟

الحاوية التي تعمل بصلاحيات root تملك صلاحيات root داخلها، فيستطيع مهاجم يخترق التطبيق فعل المزيد، وقد يغيّر خطأ في وحدة تخزين مركّبة ملفات المضيف. أنشئ مستخدمًا في RUN، مثل useradd app، وأنهِ المرحلة بـ USER app. يمكن لخطوات البناء التي تسبق ذلك أن تعمل بصلاحيات root.

لماذا أحذف /var/lib/apt/lists في أمر RUN نفسه؟

كل RUN ينشئ طبقة، والملف المحذوف في طبقة لاحقة يظل يشغل مساحة في الطبقة السابقة. ينزّل apt-get update قوائم حزم بعشرات الميغابايت، لذا احذفها في RUN نفسه بـ && rm -rf /var/lib/apt/lists/*. حذفها في RUN منفصل لا يوفّر شيئًا.

كيف أتجاهل قاعدة hadolint لسطر واحد؟

اكتب تعليقًا مباشرة فوق التعليمة: # hadolint ignore=DL3008، أو عدة رموز مفصولة بفواصل. لإيقاف قاعدة في الملف كله، اكتب # hadolint global ignore=DL3059 في أي مكان. يعمل الأسلوبان في hadolint نفسه وفي هذه الصفحة، ويعدّ الملخّص ما أُوقف.

هل هذا مماثل لتشغيل hadolint؟

بالنسبة لقواعد Dockerfile، نعم: رموز DL الـ 55 ومستوياتها وشروطها تتبع hadolint 2.12، وتقارن الاختبارات النتائج ببرنامج hadolint الحقيقي على أكثر من 80 ملفًا. لا تشمل الصفحة تحذيرات SC من ShellCheck حول شيفرة الصدفة داخل أسطر RUN، ولا القواعد التي تحتاج إلى ملف إعدادات، مثل السجلات المسموح بها.

هل أستخدم COPY أم ADD في ملف Dockerfile؟

استخدم COPY للملفات والمجلدات. يقوم ADD أيضًا بتنزيل عناوين URL وفك ضغط أرشيفات tar المحلية، وهذا مفيد حين تريد ذلك تحديدًا ومفاجئ حين لا تريده. يحدد hadolint استخدام ADD لملف عادي على أنه DL3020، ويحدد COPY يليه tar -x للأرشيف نفسه على أنه DL3010، إذ يقوم ADD بذلك في خطوة واحدة.

المصادر

  • hadolint, the Haskell Dockerfile Linter (GitHub, v2.12.0)The DL rules, their levels and their exact conditions; the binary is the reference the tests compare against
  • Docker Docs, Dockerfile referenceInstruction syntax, continuation lines, the escape directive, exec and shell form
  • Docker Docs, Building best practicesPinning base images, apt-get cleanup in the same RUN, COPY over ADD, unprivileged USER

آخر تحقق في 16 أكتوبر 2026.

تتغير المعدلات والقواعد؛ راجع المصدر قبل الاعتماد على أي رقم.

هل ما زلت عالقًا؟ اسأل عن مدقق Dockerfile ويمكن لأي شخص يعرف الإجابة أن يجيب. لا حاجة إلى حساب.

أدوات ذات صلة

جميع أدوات المطورين
مختبر التعبيرات النمطيةاختبر التعبيرات النمطية في JavaScript مع تمييز مباشر وشرح بلغة واضحةمقارنة النصوصقارن نصّين جنبًا إلى جنب وشاهد كل سطر أُضيف أو حُذفمقارنة JSONقارن مستندين بصيغة JSON واعرض كل قيمة أُضيفت أو حُذفت أو تغيّرتمعاينة Open Graphالصق صفحة وشاهد بطاقة المشاركة على Facebook وLinkedIn وX وWhatsApp وSlackكثافة الكلمات المفتاحية وسهولة القراءةعدد الكلمات والعبارات وكثافتها ووقت القراءة ودرجة سهولة القراءة Fleschرموز حالة HTTPكل رموز حالة HTTP، ومعناها، ومتى تُرسل، والمواصفة RFC التي جاءت منهامحلل وكيل المستخدماقرأ سلسلة وكيل المستخدم: المتصفح والمحرك ونظام التشغيل ونوع الجهاز وهل هو روبوتمختبر JSONPathشغّل استعلامات JSONPath وفق RFC 9535 على JSON ملصوق وشاهد كل تطابق مظلّلًا
هل كانت هذه الأداة مفيدة؟
Omnikit

مهام صغيرة تُنجز في متصفحك. مجانية وسريعة وخاصة. لا تُرفع الملفات أبدًا.

الملفات

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

المطورون

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

المال

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
الأدلةالأسئلةمن نحنكيف نتحققمكتبة القوانين (تجريبية)الخصوصيةالشروطالإفصاحاتصل بناMore: Exam practice (UGC NET Paper 1)يعمل في متصفحك. لا يُرفع أي شيء. © 2026 Omnikit (theomnikit.com)