يبسط Docker نشر التطبيقات من خلال الحاويات. في حين أن docker build
و docker run
يستخدمان عادةً بشكل متسلسل، إلا أن دمجها يمكن أن يحسن الكفاءة بشكل كبير، خاصةً أثناء التطوير أو ضمن سير العمل الآلي. تستعرض هذه المقالة طرقًا فعالة لدمج هذين الأمرين.
جدول المحتويات
- فهم
docker build
وdocker run
- دمج الأوامر باستخدام عامل التشغيل المزدوج أمبرسان (
&&
) - دمج الأوامر باستخدام الاستبدال بالأوامر
- أفضل الممارسات والاعتبارات
فهم docker build
و docker run
قبل دمج هذين الأمرين، دعونا نوضح وظائفهما الفردية:
docker build
: ينشئ صورة Docker من ملف Dockerfile. يوفر Dockerfile تعليمات لبناء الصورة، بما في ذلك نسخ الملفات، وتثبيت التبعيات، وتحديد نقطة دخول الحاوية. والمخرجات هي صورة جديدة يتم تحديدها بواسطة معرف فريد أو وسم.docker run
: ينشئ ويبدأ حاوية من صورة Docker موجودة. يقبل معرف الصورة أو الوسوم ويسمح بتحديد المعلمات مثل المنافذ، والأحجام، ومتغيرات البيئة. الحاوية هي مثيل قيد التشغيل للصورة.
في حين أن التنفيذ المنفصل شائع، إلا أن دمج هذين الأمرين يبسط الأتمتة والترميز.
دمج الأوامر باستخدام عامل التشغيل المزدوج أمبرسان (&&
)
أبسط نهج يستخدم عامل التشغيل المزدوج أمبرسان (&&
). هذا يضمن أن أمر docker run
يتم تنفيذه فقط إذا اكتمل أمر docker build
بنجاح (رمز الخروج 0). هذا يمنع محاولة تشغيل حاوية من عملية بناء فاشلة.
docker build -t my-app . && docker run my-app
هذا يبني صورة باسم “my-app” من ملف Dockerfile في الدليل الحالي (.
). النجاح يحفز تنفيذ حاوية من هذه الصورة التي تم بناؤها حديثًا.
دمج الأوامر باستخدام الاستبدال بالأوامر
يوفر استبدال الأوامر مرونة أكبر، مما يسمح بالتقاط مخرجات docker build
(مثل معرف الصورة) لاستخدامها في docker run
. هذا مفيد بشكل خاص عند الحاجة إلى وسوم أو معرفات محددة تم إنشاؤها أثناء عملية البناء.
IMAGE_ID=$(docker build -t my-app .) && docker run $IMAGE_ID
هنا، يتم التقاط معرف الصورة في متغير IMAGE_ID
. باستخدام $(...)
(المفضل على العلامات العكسية) يعزز القابلية للقراءة ويدعم الأوامر المتداخلة. إصدار أكثر إيجازًا هو:
docker run $(docker build -t my-app .)
هذا يستخدم مباشرةً مخرجات docker build
كوسيطة لـ docker run
.
أفضل الممارسات والاعتبارات
في حين أن دمج الأوامر يبسط سير العمل، ضع في اعتبارك أفضل هذه الممارسات:
- معالجة الأخطاء: قم بتنفيذ معالجة قوية للأخطاء لإدارة حالات فشل البناء المحتملة. تحقق من رموز الخروج أو استخدم تقنيات أكثر تطوراً مثل نصوص البناء المخصصة.
- التسجيل: سجل عمليات البناء والتشغيل للتصحيح والمراقبة. هذا أمر بالغ الأهمية لتحديد وحل المشكلات في البيئات الآلية.
- التعقيد: بالنسبة للعمليات البناء أو النشر المعقدة للغاية، قد تكون الأوامر المنفصلة أكثر قابلية للإدارة وأسهل في التصحيح. ضع في اعتبارك تعقيد عملية البناء الخاصة بك قبل دمج الأوامر.
- وضع علامات الصور: استخدم دائمًا علامات صور وصفية ومتسقة لتحسين التنظيم والتعقب.
من خلال اختيار الطريقة بعناية وتنفيذ أفضل هذه الممارسات، يمكنك الاستفادة من قوة أوامر Docker المدمجة لنشر تطبيقات حاوية بكفاءة ومرونة.