البرمجة

فهم عرض سجلات Docker بشكل شامل مع docker-compose run

عند استخدام أمر docker-compose up، يمكنك بسهولة رصد سجلات جميع الحاويات المحددة في ملف docker-compose.yml الخاص بك. ومع ذلك، عند استخدام الأمر docker-compose run app، قد تجد نفسك مقيدًا برؤية إخراج السجلات الخاص بالحاويات الأخرى التي يعتمد عليها التطبيق (app). هذا يمكن أن يكون أمرًا محيرًا خاصة عندما تحتاج إلى تتبع سجلات الخدمات الأخرى لتحليل السلوك أو تصحيح الأخطاء.

للتغلب على هذا التحدي، يمكنك استخدام خيار -f أو --follow مع الأمر docker-compose run لتمكين متابعة السجلات لجميع الخدمات المرتبطة بـ app. على سبيل المثال، يمكنك تحقيق ذلك باستخدام الأمر التالي:

bash
docker-compose run --service-ports --rm --name my_app_container -f app -f service1 -f service2 app

في هذا الأمر، قمت بتضمين خيار --service-ports لتمكين فتح منافذ الخدمات المعنية، و --rm لحذف الحاوية بمجرد إنهاء التشغيل. يتم استخدام -f لتحديد الخدمات التي ترغب في متابعة سجلاتها.

عند تشغيل هذا الأمر، ستتمكن من رؤية إخراج السجلات لكل الخدمات التي يعتمد عليها التطبيق. وهكذا، يمكنك تحليل السلوك الكامل للتطبيق والخدمات الخاصة به أثناء تشغيل الأمر docker-compose run.

لا تنسى استبدال “app” و “service1” و “service2” بأسماء الخدمات الفعلية التي يعتمد عليها تطبيقك. هذا النهج يسمح لك بتحقيق رؤية شاملة للسجلات والإخراج لكل الخدمات ذات الصلة، مما يساعدك في فحص وتصحيح أي مشكلات قد تطرأ أثناء تطوير واختبار تطبيقك.

المزيد من المعلومات

لا شك أن فهم كيفية عرض سجلات الإخراج باستخدام docker-compose run يعد جزءًا مهمًا من عملية تطوير التطبيقات باستخدام Docker و Docker Compose. لنقم بتوسيع نطاق النقاش لفهم المزيد من المفاهيم المرتبطة.

أحد الجوانب الهامة هو فهم كيفية تعامل Docker مع السجلات بشكل عام. عندما تقوم بتشغيل حاوية باستخدام docker-compose up، يتم توجيه سجلات الإخراج (stdout وstderr) إلى نفس السياق حيث تقوم بتشغيل الأمر. ومع ذلك، عند استخدام docker-compose run، يمكن أن تتوجه هذه السجلات إلى حاويات فرعية تابعة للخدمة المحددة، وهذا هو ما يجعلها تظهر عادة فقط للخدمة الرئيسية (app في هذه الحالة).

تأكيد فهمك لكيفية عمل خيار --service-ports يساهم في تفادي مشكلة عدم رؤية سجلات الخدمات الأخرى. هذا الخيار يفتح المنافذ المعرفة في ملف docker-compose.yml لتكون متاحة للعرض، وبالتالي تحسين رؤية السجلات وفحصها.

من الناحية الأخرى، يمكن أيضًا أن يكون من المفيد فهم كيفية تكوين السجلات في ملف docker-compose.yml نفسه. يمكنك تعيين تكوين خاص بالسجلات باستخدام مفاتيح logging و services في ملف التكوين. يمكن تحديد مستوى التفاصيل وتحديد وجهة السجلات (مثل syslog أو json-file) للحاويات المختلفة.

في الختام، فإن فهم تفاصيل كيفية التعامل مع السجلات في بيئة Docker يمكن أن يسهم بشكل كبير في تسريع عملية تطوير واختبار التطبيقات الخاصة بك، وضمان فحص دقيق وشامل للإخراج والسلوك لكل الخدمات المرتبطة بتطبيقك.

زر الذهاب إلى الأعلى