عامل الميناء-يؤلف: الخيار لإزالة الحاوية تلقائيا بعد التشغيل في عامل الميناء-يؤلف.يمل

ال docker-compose run المرجع الدول التي لديها --rm الخيار ل

قم بإزالة الحاوية بعد التشغيل.

أريد أن أجعل هذا افتراضيا run السلوك لبعض الخدمات التي أحددها في docker-compose.yml.

لذا ، فإن الأسئلة هي:

  1. هل يمكن تحديدها بطريقة ما في docker-compose.yml?
  2. إذا كان يمكن, كيف يمكنني أن أفعل ذلك?

(أي بي 4 " استخدم أسماء باش المستعارة, لوقا!": بالطبع يمكنني فرض هذا خارج docker-compose.yml عن طريق وضع بعض باش الاسم المستعار مثل alias docker-compose-run='docker-compose run --rm' ولكن أنا مهتم في كيف يمكنني فرض ذلك بالضبط من خلال docker-compose.yml، ليس بطريقة خارجية.)

تلدر: انها لا يزال غير ممكن 2018-11; استعمال docker-compose down أو docker-compose run --rm

أريد أن أعطي إجابة محدثة على هذا السؤال لأنه بعد 3 سنوات تقريبا. هذا سيوفر للآخرين بعض البحث.

كان لي نفس السؤال وهنا هي الحلول التي وجدت (بما في ذلك واحد من السؤال نفسه):

docker-compose down

الذي يفعل ما يلي:

توقف الحاويات ويزيل الحاويات ، والشبكات ، وحدات التخزين ، والصور التي تم إنشاؤها بواسطة ما يصل.

بشكل افتراضي ، الأشياء الوحيدة التي تمت إزالتها هي:

- Containers for services defined in the Compose file- Networks defined in the networks section of the Compose file- The default network, if one is used

لا تتم إزالة الشبكات والأحجام المحددة على أنها خارجية.

على الرغم من أنك لا يمكن أن تعلن في docker-compose.yml وسوف آمنة لك بعض المتاعب ؛ خصوصا مع وحدات التخزين والشبكات.

docker-compose run --rm

-- جمهورية مقدونيا-إزالة الحاويات بعد التشغيل. تجاهل في وضع منفصل.

يدير أمر لمرة واحدة ضد الخدمة. على سبيل المثال ، الأمر التالي يبدأ خدمة ويب ويدير باش كأمر لها.

docker-compose run web bash

[...] الأمر مرت من قبل تشغيل يتجاوز الأمر المحدد في الخدمة التكوين.

[...] الأمر لا يقوم بإنشاء أي من المنافذ المحدد في تكوين الخدمة. هذا يمنع اصطدام المنفذ بالمنافذ المفتوحة بالفعل. إذا كنت تريد إنشاء منافذ الخدمة وتعيين إلى المضيف ، حدد -- خدمة-الموانئ العلم

docker-compose rm -f

القوة لا تطلب تأكيد الإزالة

انها ليست جزءا من Dockerfile أو docker-compose.yml المواصفات ، أنها ليست سوى خيار كلي للأمر تشغيل ، وبالتالي فإن الجواب هو لا. سوف تحتاج إلى الاعتماد على شيء خارجي لفرض.

إذا كنت حصلت على بعض أداة بناء لمشروعك فمن الأفضل عادة للالتفاف عامل الميناء يؤلف المهام مع ذلك. على سبيل المثال توفر مشاريعنا غرادل المهام ذات الصلة عامل الميناء التي تحدد بعض الخيارات الافتراضية مثل --rm لتشغيل المهام.