مُولِّد Dockerfile
مرشد
مُولِّد Dockerfile
بناء Dockerfile جاهز للإنتاج في ثوانٍ. اختر مُكوّن مثل Node.js، Python، Go، OpenJDK، Ruby، PHP، Rust، .NET، Nginx، Alpine، Ubuntu، أو Debian وستُحدّد القيم الافتراضية المناسبة للصورة الأساسية، المتغيرات البيئية، ملفات الاعتماد، أوامر التثبيت، الباب المُعرض، والمستخدم في التشغيل. قم بتعديل أي حقل وستُتحديث Dockerfile فورًا وفقًا لترتيب الطبقات المُوصى به.
كيفية استخدام
- اختر مُكوّنًا من قائمة المُكوّنات. سيتم تعبئة اسم الصورة، العلامة، المتغيرات البيئية، ملفات الاعتماد، وCMD بقيم افتراضية مُثبتة.
- قم بتعديل العلامة على الصورة، WORKDIR، مُدخلات البناء، ومتغيرات التشغيل لتناسب مشروعك.
- أدخل أي مُلفات نظام تحتاجها (واحدة في كل سطر). سيقوم المُولد بتركيبها باستخدام apk على صور Alpine وapt-get على صور الأسرة ديبيان.
- حدد الملفات التي يجب نسخها أولاً لتحسين تخزين الطبقات، وأوامر التثبيت التي تليها، وعمليات بناء اختيارية.
- قم بتكوين الأبواب المُعرضة، المستخدم غير المُعتمد، تحقق من الصحة اختياري، واختر شكل التنفيذ أو الشكل المُدمج للوصول إلى CMD أو ENTRYPOINT.
- انسخ Dockerfile المُولّد أو احصل عليه مباشرة إلى جذر مشروعك.
خصائص
- مُسبّبات المُكوّنات – نقرة واحدة تُزرع Node، Python، Go، OpenJDK، Ruby، PHP، Rust، .NET، Nginx، Alpine، Ubuntu، Debian، أو صورة مخصصة من قبلك.
- ترتيب الطبقات المُوصى به – FROM، ARG، WORKDIR، ENV، برامج النظام، نسخ الملفات المُعتمدة + التثبيت، نسخ المصدر، بناء، EXPOSE، USER، HEALTHCHECK، ثم ENTRYPOINT/CMD.
- مُحسّن لتخزين الطبقات – ينسخ ملفات الاعتماد قبل باقي المصدر لكي يُستبعد تثبيت الاعتماد عند إعادة البناء عندما تتغير الكود.
- مُدرك لمحرّر البرامج – يُصدر
apk add --no-cacheلصورة Alpine وطبقة واحدة مُنظّفةapt-get update && installلصورة الأسرة ديبيان. - شكل التنفيذ أو الشكل المُدمج – يُعرض CMD وENTRYPOINT كمصفوفة JSON (مُوصى به) أو كسلسلة شل مُباشرة.
- مُساعد التحقق من الصحة – يُمكن تخصيص الفترة مع أوقات انتقال مناسبة، فترة البدء، وعدد المحاولات الافتراضية.
- إعادة التوليد الحية – كل تغيير يُحدث تحديث النتيجة دون الحاجة لضغط زر "Generate". انسخ أو احصل على النتيجة بفترة واحدة.
التعليمات
-
لماذا يهم ترتيب تعليمات Dockerfile؟
يُخزن كل تعليمات Docker كطبقة غير قابلة للتغيير مُحددة بمقابلاتها. عند تغيير طبقة، يجب إعادة بناء كل طبقات تحتها. وضع التعليمات النادرة التغيير مثل FROM، ENV، وتركيب الاعتماد في الأعلى، ونسخ المصدر والبناء في الأسفل، يسمح لـ Docker بتوظيف الطبقات المكلفة في معظم البناءات ويُعيد بناء فقط الطبقات المحدودة في النهاية.
-
ما الفرق بين شكل CMD exec وشكل shell؟
يُعد شكل التنفيذ مصفوفة JSON (مثلاً، ["node", "server.js"]) يُنفذ مباشرة من خلال execve، لذا يصبح العملية رقم 1 ويُستقبل الإشارات مثل SIGTERM بشكل نظيف. أما شكل الشل فهو سلسلة واحدة تُحيط بها /bin/sh -c، مما يضيف شلًا كرقم 1، ويُستهلك الإشارات، ويُوقف التوقف النظيف. يُعد شكل التنفيذ هو الافتراض المُوصى به لخدمات طويلة الأمد.
-
لماذا ننسخ package.json أو requirements.txt قبل باقي المصدر؟
غالبًا ما تكون خطوة تثبيت الاعتماد هي أبطأ خطوة في البناء. من خلال نسخ فقط الملفات المُحددة والملف المُحدد أولاً، ثم تنفيذ التثبيت، يمكن لـ Docker تخزين الطبقة وتوظيفها في كل بناء حتى تغيير هذه الملفات. إذا نسخ كل المصدر أولاً، فسيُلغى طبقة التثبيت في كل تغيير للنظام، مما يُجبر على إعادة التثبيت كل مرة.
-
لماذا نستخدم مستخدمًا غير مُعتمد داخل الصورة؟
بشكل افتراضي، تُنفذ العمليات داخل الصورة كمستخدم root. إذا استغلت عطل في تطبيقك، فإنها تُورث root داخل الصورة، مما يزيد من نطاق التأثير. التحول إلى مستخدم مخصص غير مُعتمد باستخدام USER يقلل من ما يمكن للبرمجيات الخبيثة قراءته أو كتابته أو ترقية إليه، وهو متطلب أساسي لعديد الأنظمة المُنتجة وسياسات أمان كروم.
-
ما الذي يفعله HEALTHCHECK فعليًا؟
يُخبر Docker بأمر يُنفذ بشكل دوري لتحديد ما إذا كانت الصورة صحية. يتم عرض النتيجة من خلال docker inspect ويُستهلك من قبل المُنظّمين والمحولات لتحكم في التدفق، إعادة تشغيل الصور غير الصحية، وتحديد تثبيت الأنظمة كفشل. يجب أن يكون التحقق جيدًا ويُختبر نفس المسار الذي يستخدمه العملاء، ويُنفذ بسرعة، ويُجرى بشكل كافٍ للكشف عن الفشل قبل أن يُلاحظه المستخدم.
تثبيت ملحقاتنا
أضف أدوات IO إلى متصفحك المفضل للوصول الفوري والبحث بشكل أسرع
恵 وصلت لوحة النتائج!
لوحة النتائج هي طريقة ممتعة لتتبع ألعابك، يتم تخزين جميع البيانات في متصفحك. المزيد من الميزات قريبا!
