أريد أن أجعل هذا افتراضيا run السلوك لبعض الخدمات التي أحددها في docker-compose.yml.
لذا ، فإن الأسئلة هي:
هل يمكن تحديدها بطريقة ما في docker-compose.yml?
إذا كان يمكن, كيف يمكنني أن أفعل ذلك?
(أي بي 4 " استخدم أسماء باش المستعارة, لوقا!": بالطبع يمكنني فرض هذا خارج docker-compose.yml عن طريق وضع بعض باش الاسم المستعار مثل alias docker-compose-run='docker-compose run --rm' ولكن أنا مهتم في كيف يمكنني فرض ذلك بالضبط من خلال docker-compose.yml، ليس بطريقة خارجية.)
توقف الحاويات ويزيل الحاويات ، والشبكات ، وحدات التخزين ، والصور التي تم إنشاؤها بواسطة ما يصل.
بشكل افتراضي ، الأشياء الوحيدة التي تمت إزالتها هي:
- 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 web bash
[...] الأمر مرت من قبل تشغيل يتجاوز الأمر المحدد في الخدمة التكوين.
[...] الأمر لا يقوم بإنشاء أي من المنافذ المحدد في تكوين الخدمة. هذا يمنع اصطدام المنفذ بالمنافذ المفتوحة بالفعل. إذا كنت تريد إنشاء منافذ الخدمة وتعيين إلى المضيف ، حدد -- خدمة-الموانئ العلم
انها ليست جزءا من Dockerfile أو docker-compose.yml المواصفات ، أنها ليست سوى خيار كلي للأمر تشغيل ، وبالتالي فإن الجواب هو لا. سوف تحتاج إلى الاعتماد على شيء خارجي لفرض.
إذا كنت حصلت على بعض أداة بناء لمشروعك فمن الأفضل عادة للالتفاف عامل الميناء يؤلف المهام مع ذلك. على سبيل المثال توفر مشاريعنا غرادل المهام ذات الصلة عامل الميناء التي تحدد بعض الخيارات الافتراضية مثل --rm لتشغيل المهام.