‫حسنا. هذه هي الإجابات الخاصة بمهمة إنشاء ملف Docker الأول الخاص بنا. إذا كنت في جذر مستودعنا
‫، الذي قمت بتنزيله من بداية هذه الدورة التدريبية ، فيجب أن
‫نكون قادرين على الدخول في مهمة dockerfile 1. إذا نظرنا هناك ، لدي ملف واحد فقط
‫أهتم به حقًا ، وهو Dockerfile.
‫من المفترض أن هذا مصدر أعطاني إياه شخص ما ، وهو مطور تطبيق يستخدم Node. js ، وأنا لا أعرف الكثير عنها حقًا ، لذلك
‫سأقوم فقط بتحرير ملف Dockerfile.
‫نعم.
‫إذا اتبعت تعليمات المطور ، فأنا أعلم أن أول شيء يجب أن أفعله هو أن أحتاج
‫إلى الحصول على صورتي من FROM. وأنا أعلم أنني بحاجة لاستخدام مسؤول العقدة. اسمحوا لي أن أذهب للبحث عنها.
‫الصحيح. هناك مسؤول العقدة.
‫أحتاج إلى الإصدار 6 يعمل على Alpine. إذن هناك 6 جبال الألب.
‫حسنا. لذلك ، 6 جبال الألب.
‫موافق. الشيئ القادم... أحتاج إلى كشف المنفذ 3000.
‫أنا أكشف هنا 3000 لأن هذا هو ما تم تصميم التطبيق للتشغيل عليه.
‫لكن عندما أقوم بتشغيله لاحقًا باستخدام Docker run ، أحتاج أن أتذكر أنني سأضطر إلى
‫استخدام -p مع المنفذ 80 الذي ينتقل إلى المنفذ 3000.
‫حسنا.
‫يحتاج هذا الشخص إلى استخدام مدير الحزم لتثبيت
‫هذا التطبيق ، tini. سأستخدم أمر التشغيل لذلك.
‫ثم سأقوم بعمل دليل.
‫حسنا.
‫سأجعلهم فقط أوامر تشغيل منفصلة ... قم بتشغيل إضافة apk
‫، ثم قم بتشغيل mkdir.
‫نعم. ثم أحتاج إلى نسخ ملف واحد يبدو.
‫لذلك ، قد أقوم أيضًا بتغيير دليل العمل إلى ذلك الدليل الذي أنشأناه للتو.
‫لذلك WORKDIR تطبيق مصدر المستخدم. سيوفر لي الوقت لاحقًا.
‫يمكنني عمل نسخة حزمة json package
‫json. حسنا. ثم أحتاج إلى تشغيل أمر التثبيت. يبدو أنه سيكون تشغيلًا. هذا يقول تشغيل أمر
‫آخر للتنظيف.
‫حسنا.
‫حسنًا ، عادةً عندما تقوم بتشغيل أمر تنظيف ، فأنت تريده أن يقوم بتشغيل نفس السطر أو نفس سطر التشغيل مثل التثبيت
‫الفعلي.
‫بهذه الطريقة يزيل كل شيء في نفس الوقت وستحصل على طبقة صورة واحدة فقط.
‫هذا هو الأفضل لمساحة الصورة.
‫لذا سأضيفها هنا.
‫وما تفعله هنا العلامة المزدوجة ، أو علامة العطف كما تدعى ، هو أنها في الواقع شرطية.
‫يقول لسطر الأوامر في Linux ، 'مرحبًا ، إذا قمت بتنفيذ الأمر الأول ونجح ، فقم بتنفيذ الأمر
‫الثاني. قد ترى أيضًا
‫أن بعض الأشخاص يضعون فاصلة منقوطة أحيانًا ، ولا بأس بذلك أيضًا.
‫الفرق هو أن الفاصلة المنقوطة لا تعتمد على ما إذا كان الأمر الأول ناجحًا أم لا.
‫انها مجرد تشغيل الثانية بغض النظر.
‫لذلك أنا أحب علامة العطف المزدوجة.
‫حسنا.
‫يبدو أنه يتم نسخ المزيد من الملفات. إذا كنت سأقوم بنسخ كل شيء ، فسأقوم فقط .. هذه طريقة سهلة للقيام بذلك.
‫تأكد من وجود مساحة في المنتصف.
‫هذا يعني بشكل أساسي
‫، 'انسخ كل شيء من دليلي الحالي على المضيف إلى دليل العمل الحالي في الصورة. ' نعم.
‫لقد وصلت إلى آخر واحد.
‫وهذا يبدو صعبًا بعض الشيء.
‫لدي أربعة أجزاء مختلفة من الأمر الذي أحتاجه للتشغيل هناك.
‫لذلك مع هذا التنسيق ، أحتاج إلى تشغيل tini ، ثم فاصلة.
‫هذا بتنسيق JSON.
‫هذا المقطع أمر خاص. -، node bin www.
‫وإذا كنت أشعر بالفضول حيال ذلك ، فيمكنني دائمًا الانتقال
‫إلى المتصفح الخاص بي والقيام بتشغيل عامل الإرساء أو بناء عامل الإرساء cmd.
‫وأراهن أنك مرجع Dockerfile. وهنا في هذه الصفحة
‫، يمكنني الانتقال إلى cmd. ويتحدث عن الشكل الدقيق. إذا قرأت هنا ، ستلاحظ بالفعل
‫أن هناك شيئًا يسمى نموذج الصدفة. وهناك أيضًا شيء يذكرونه
‫حول نقطة دخول.
‫سنتحدث عن ذلك لاحقًا في الدورة التدريبية في قسم Dockerfile الأكثر تقدمًا.
‫لكن في الوقت الحالي ، هذا جيد.
‫دعونا نحاول بنائه. بناء عامل ميناء. أنا لا أهتم حقًا بما أسميه الآن.
‫أنا أحاول فقط اختبار التصميم وعادةً لا تعمل الإنشاءات الخاصة بي في المرة الأولى. لذا ، سأسميها
‫نقطة اختبار. سأقوم ببناء هذا الدليل.
‫نعم.
‫يبدو أنها بنيت بشكل صحيح.
‫دعونا نرى ما إذا كان يمكنك تشغيله.
‫سأقوم بعمل - rm لأنني حقًا
‫لا أهتم بالاحتفاظ به بعد أن اختبرته ، لذلك سأفعل ذلك فقط.
‫لن أحتاج إلى تسميته.
‫أنا بحاجة لوضع منفذ لفتح الميناء. تريد أن تعمل على 80 لكنها تستمع إلى 3000. نعم.
‫هذه في الواقع رسالة عادية نتلقاها
‫من تيني ، داخل جبال الألب ، لذلك لن أقلق بشأن ذلك كثيرًا.
‫دعنا نذهب لنرى ما إذا كان يعمل.
‫حلو. سنرى السجلات هناك.
‫نعم.
‫يبدو أنه ..
‫شكرا كابتن بيكارد.
‫انا اقدر التصفيق
‫أنا أقدر الدعم.
‫شكرًا.
‫حسنا.
‫السيطرة ج من هناك. الآن ، يجب أن يكون في
‫أعلى قائمة الصور الخاصة بي.
‫أحتاج إلى إعادة تسميته قبل وضعه على Docker Hub.
‫إذن ، علامة عامل الإرساء ، وأعتقد أن التنسيق هو القديم والجديد. نعم.
‫لذلك ، اختبار علامة عامل ميناء.
‫سأسميها عقدة اختبار
‫bretfisher.
‫وسأتركه على أبعد تقدير.
‫لذا ، دفع عامل الميناء ، وهذا. كل ما نحتاج إلى القلق بشأنه هو الاسم. لذلك ، دفع عامل ميناء
‫اختبار عقدة bretfisher.
‫حسنا. دعنا نذهب إلى Docker وننظر.
‫ها نحن نختبر العقدة.
‫نعم.
‫سأقوم بمسح الشاشة و docker image ls.
‫وهي هناك. سأقوم بإزالته ، اختبار عامل ميناء صورة rm
‫bretfisher.
‫حسنا. الآن سأقوم بتشغيله ، تشغيل حاوية عامل الإرساء - rm -p 80 3000
‫تمامًا كما كان من قبل.
‫ثم سأطلق عليها اسم عقدة اختبار صياد السمك.
‫يجب تنزيله وتشغيله.
‫حسنا.
‫إذا عدت عبر المتصفح الخاص بي ، المضيف المحلي ، فهناك. يمكنني الضغط على تحديث فقط للتأكد.
‫نعم. رائع.