‫بالنسبة لهذه المهمة ، سأطلب منك إنشاء صورتك الخاصة من Dockerfile.
‫ستنتقل بشكل أساسي سطراً بسطر في Dockerfile وتكتشف كيفية جعله يعمل
‫بشكل صحيح بمفردك.
‫هذا هو أحد الأشياء المفضلة لدي في الواقع في Docker.
‫أنا مهووس قليلاً بذلك. أشعر بالضخ الشديد لأن إنشاء Dockerfile جديد من تطبيق موجود
‫، بالنسبة لي ، يبدو وكأنه في الواقع يجعل التطبيق أفضل. لأنني أحب التحدي المتمثل في صنع شيء كان
‫معقدًا سابقًا ، أو غير متسق في عمليته ، وأن يصبح آليًا ويمكن التنبؤ به.
‫هذا حقًا ما هو كل شيء عن Dockerfile.
‫من التمارين الشائعة لمسؤول Docker إنشاء صور مخصصة ومساعدة الآخرين في إنشاء Dockerfiles لكود
‫المصدر الخاص بهم.
‫في كثير من الأحيان ، ستحتاج إلى البحث في الصور الرسمية ، وقد لا تعرف الكثير عن التطبيق
‫أو حتى اللغة أو الحزم التي يستخدمها ، لكنك لا تزال بحاجة إلى "Dockerize".
‫وهو ما يعني أنك تقوم بإنشاء Dockerfile لتطبيق أو خدمة حالية وأنك ستجعله
‫يعمل بشكل صحيح في حاوية.
‫ولكن ، تعني هذه العملية أنك ستحتاج إلى البحث عن صور رسمية مطابقة أو صورة ربما تكون
‫غير رسمية ، لكنها قريبة مما تحتاج
‫إليه بقدر ما يمكنك الحصول عليه. والتحقق من مستودع الصور هذا ، وملفات Dockerfiles الموجودة
‫فيه ، لفهم كيفية بنائه ، ثم كيف يمكنك البناء منه ، باستخدام الأمر from.
‫ستحتاج إلى تعلم فن دمج تلك الصورة الحالية مع تعليمات البناء الخاصة بك للحصول على صورة تعمل
‫بشكل كامل في النهاية.
‫في هذا ، سنأخذ عقدة موجودة. js و Dockerize عليه.
‫مرة أخرى ، لا يتعين عليك في الواقع معرفة أي شيء حقًا عن Node. js بخلاف القول إن هذا تطبيق ويب
‫، وسأعطيك بعض المعلومات ، وستحتاج إلى إنشاء Dockerfile
‫منه.
‫حقًا ، النظرة العامة هنا هي أنك ستنشئ Dockerfile ،
‫وستحاول إنشائه. ثم ستحاول اختباره في حاوية. ثم بمجرد القيام بذلك وتشغيله ،
‫يمكنك دفعه إلى Docker Hub. ثم سنقوم بإزالته محليًا. ثم سنقوم بتشغيله
‫مرة أخرى. توقع حقًا ، خاصةً هذا الجزء المتعلق بالبناء والاختبار ، أن يكون تكراريًا.
‫من النادر جدًا أن أحصل على Dockerfile بشكل صحيح في اللقطة الأولى.
‫ثم سأحاول بنائه وسأحصل على خطأ في البناء. ثم سأستمر في تغييره ثم أبنيه مرة
‫أخرى حتى أجعل ذلك يعمل وينتهي. ثم سأحاول إجراء اختبار في حاوية
‫ولن يعمل دائمًا في المرة الأولى. لذلك سأضطر إلى التغيير في Dockerfile مرة أخرى ، وإعادة بنائه
‫، ثم إنشاء حاوية أخرى منه.
‫لذا توقع هذه العملية وستتعلم الكثير من القيام بذلك بنفسك.
‫بالنسبة لهذه المهمة ، يكون الملف الفعلي الذي ستبدأ به موجودًا
‫في دليل Dockerfile المخصص 1 ، في جذر المستودع الذي قمت بتنزيله من GitHub
‫، وهو نفس الملف الذي كنا نعمل معه. ولاحظ أننا سنستخدم بالفعل صورة رسمية ، مما يعني أنه سيكون
‫هناك الكثير من الوثائق الجيدة حول كيفية استخدامها. وهذا يشمل Dockerfile للصورة الرسمية.
‫إذا كنت تتذكر أنني ذكرت Alpine كتوزيع صغير جدًا لنظام Linux ، فهذا هو
‫التوزيع الذي أرغب في استخدامه هنا. ستستخدم إصدارًا محددًا من Node سيدرجونه
‫في Docker Hub ، وهو الإصدار 6. الإصدار x. يمكنك استخدام أي من هذه الخيارات الموجودة أسفل الفرع السادس. نتيجة الاختبار المتوقعة هي أنك
‫قادر بالفعل على طرحه على متصفح الويب الخاص بك محليًا ، باستخدام المضيف المحلي.
‫ثم بمجرد تشغيله محليًا ، ستقوم بالفعل بوضع علامة عليه باسم مناسب بحيث يستخدم اسم حساب Docker Hub
‫الخاص بك ، واسم الريبو الجديد الذي يمكنك إنشاؤه بنفسك. ستدفعه إلى Docker
‫Hub. ثم بمجرد أن تذهب إلى Docker Hub وتحقق
‫من وجودها وتبدو صحيحة ، قم بإزالة الصورة المحلية من ذاكرة التخزين المؤقت الخاصة بك ، وسنقوم بتشغيل
‫الحاوية للمرة الأخيرة حتى نتمكن من فعليًا إعادة التنزيل من Docker Hub ، ثم قم بتشغيله فقط
‫للتأكد من أن كل شيء على ما هو متوقع. تمامًا مثل المهام الأخرى ، إذا
‫واجهتك مشكلة ، ولا بأس إذا فعلت ذلك ، فتذكر أن المحاضرة التالية ، التي تليها ، هي في الواقع أقوم بهذه
‫المهمة بنفسي وكيف يمكنني القيام بها. مثل المهام الأخرى ، ستكون هناك عدة
‫خيارات وطرق للقيام بذلك ، لأنه مرة أخرى ، هذا ليس علمًا دقيقًا.
‫قد لا يبدو Dockerfile الخاص بك تمامًا مثل Dockerfile الخاص بي ، ولكن إذا تم إنشاؤه بشكل
‫صحيح دون أخطاء ، ثم حصلت على موقع الويب يعمل على متصفح ويب مع مضيف محلي ، فعندئذٍ سأسمي ذلك
‫نجاحًا.
‫حظا سعيدا ونراكم في المحاضرة القادمة.