मैं का उपयोग करने की कोशिश कर रहा हूं जिस तरह से आप docker run [APP_CONTAINER_NAME] [APP_OPTIONS]
का उपयोग कर सकते हैं।मैं अपने डॉकराइज्ड प्रोग्राम में कमांड लाइन विकल्प कैसे भेज सकता हूं जिसे मैं "डॉकर-कंपोज़ अप" से शुरू करता हूं?
उत्तर
docker run के रूप में परिभाषित किया गया है: के रूप में परिभाषित किया गया है
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
जबकि docker compose run
:
docker-compose run [options] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]
दोनों मामलों में, अंतिम ARGS
(हो सकता है जो ओ पी के सवाल का "APP_OPTIONS
") होगा कंटेनर कमांड को पास किया जाना चाहिए।
ध्यान दें कि docker run
विकल्प में से कुछ के रूप में इस्तेमाल किया जा सकता docker-compose run
में है (एक -d
झूठ, कंटेनर आदेश अलग से चलाने के लिए), लेकिन उन सभी को नहीं।
क्या ARGS को डॉकर-कंपोज़ फ़ाइल में डालने का कोई तरीका नहीं है? कमांड लाइन पर उन्हें पास करना मेरे मामले में बहुत अस्थिर है। – dsteinkopf
@dsteinkopf निश्चित: 'कमांड' के साथ (https://docs.docker.com/compose/compose-file/#command) आप छवि डिफ़ॉल्ट कमांड को ओवरराइड कर सकते हैं, जिससे आप छवि में परिभाषित कमांड को दोहराने की अनुमति दे सकते हैं, लेकिन बदल सकते हैं इसके पैरामीटर – VonC
डॉकर कंपोज़ का बिंदु यह है कि आपको अपने सभी कमांड लाइन स्विच याद रखने की ज़रूरत नहीं है।
यदि आप विभिन्न संदर्भों के लिए पर्यावरण चर बदलना चाहते हैं, तो मेरा सुझाव है कि आप रचना के लिए आधार common.yml
फ़ाइल बनाएं। इसके बाद आप निर्देश के साथ common.yml
फ़ाइल से विरासत में प्राप्त प्रत्येक अलग संदर्भ के लिए एक नई वाईएमएल फ़ाइल बना सकते हैं। इसके बाद आप -f
संदर्भों के बीच स्विच करने के लिए docker compose
पर ध्वज का उपयोग कर सकते हैं।
यह भी ध्यान दें कि यदि आप येल में एक चर बदलते हैं तो कंपोज़ को "पुनर्निर्माण" नहीं करना चाहिए, और यदि आप अपने लिए बेहतर काम करते हैं तो आप पर्यावरण चर के लिए बाहरी फ़ाइल का उपयोग कर सकते हैं।
आपको डॉकरफ़ाइल को देखने और APP_OPTIONS को प्रबंधित करने का तरीका देखने की आवश्यकता है। संभावना है कि एंटरपॉइंट विकल्प झंडे ले रहा है। इस मामले में,
command: [-flag1, -flag2]
यह काम करता है जब दोनों निर्दिष्ट कर रहे हैं https://www.ctl.io/developers/blog/post/dockerfile-entrypoint-vs-cmd/
- 1. मैं स्मार्टगिट से कमांड लाइन कैसे शुरू कर सकता हूं?
- 2. मैं डेल्फी में कमांड लाइन प्रोग्राम कैसे चला सकता हूं?
- 3. मैं कमांड लाइन से स्कैला + specs2 कैसे चला सकता हूं?
- 4. मैं कमांड लाइन से प्रोफाइलर कैसे चला सकता हूं?
- 5. मैं अपने ऐप में कमांड लाइन
- 6. मैं अपने पर्ल सीजीआई प्रोग्राम को कैसे बना सकता हूं?
- 7. मैं कमांड लाइन से अपने आईफोन में ऐप कैसे लगा सकता हूं?
- 8. मैं कमांड लाइन से ऑक्टेट कैसे शुरू कर सकता हूं, न कि जीयूआई?
- 9. पोस्टग्रेस्क्ल में: मैं एक साधारण काउंटर कैसे बना सकता हूं जिसे मैं रीसेट कर सकता हूं?
- 10. मैं जावा से एक एसएमएस कैसे भेज सकता हूं?
- 11. मैं फ़िल्टर से पहले पैरामीटर कैसे भेज सकता हूं?
- 12. मैं कमांड लाइन से जावा प्रोग्राम के लिए मेमोरी उपयोग, थ्रेड डंप कैसे देख सकता हूं?
- 13. मैं कमांड लाइन टेक्स्ट एडिटर कैसे बना सकता हूं?
- 14. मैं कोको से एक HTML ईमेल कैसे भेज सकता हूं?
- 15. मैं एंड्रॉइड कमांड लाइन टूल्स कैसे चला सकता हूं?
- 16. क्या मैं कमांड लाइन में मेवेन रिपॉजिटरीज़ जोड़ सकता हूं?
- 17. मैं अपने पर्ल प्रोग्राम के लिए कमांड लाइन स्विच के माध्यम से एक डिबगिंग मोड कैसे सक्षम कर सकता हूं?
- 18. मैं ओएसएक्स में प्रोग्राम कैसे स्वचालित रूप से शुरू कर सकता हूं?
- 19. मैं Emacs में एक सूडो कमांड कैसे चला सकता हूं?
- 20. मैं पर्ल प्रोग्राम में कमांड लाइन तर्क कैसे पास कर सकता हूं?
- 21. मैं विजुअल सी ++ 2008 में कमांड लाइन बिल्ड विकल्प कैसे दिखा सकता हूं?
- 22. मैं ब्राउज़र से http हटाना अनुरोध कैसे भेज सकता हूं?
- 23. क्या मैं ओपनसीएल का उपयोग उस एप्लिकेशन में कर सकता हूं जिसे मैं गैर डेवलपर मशीन में वितरित करता हूं?
- 24. मैं PHP वेब सेवा में छवियां कैसे भेज सकता हूं?
- 25. क्या मैं एक्लिप्स द्वारा बनाई गई कमांड लाइन प्रोग्राम से चला सकता हूं?
- 26. मैं एक्सकोड 4 में सी ++ प्रोग्राम कैसे चला सकता हूं?
- 27. मैं सॉकेट.मैट के माध्यम से कितना डेटा भेज सकता हूं?
- 28. मैं प्रक्रिया कैसे शुरू कर सकता हूं और इसे अजगर में पृष्ठभूमि में रख सकता हूं?
- 29. मैं मॉड्यूल कैसे सूचीबद्ध कर सकता हूं और कमांड लाइन पर फ़ंक्शन मौजूद कर सकता हूं?
- 30. मैं विंडोज एक्सप्लोरर में प्रोग्रामेटिक रूप से एक ईमेल कैसे भेज सकता हूं जिस तरह से मैं "मेल प्राप्तकर्ता को भेज सकता हूं"?
मैं सच में समझ में नहीं आता क्योंकि Dockerfile में COMMAND entrypoint करने के लिए डिफ़ॉल्ट आर्ग के रूप में कार्य का उपयोग कर entrypoint को भेजने के लिए आदेश निर्दिष्ट प्रश्न - डॉकर-कंपोज़ में आप अपने तर्क डॉकर-compose.yml फ़ाइल में डालते हैं। क्या आपके लिए उस दृष्टिकोण में कोई समस्या है? –
@AdrianMouat हाँ यह आदर्श नहीं है क्योंकि हर बार जब आप एक नया विकल्प भेजना चाहते हैं तो आपको docker-compose.yml को संशोधित करना होगा, पुनर्निर्माण और पुन: निर्माण करना होगा। जब मैं सेवा चलाता हूं तो मैं अपने प्रोग्राम में विकल्प भेज सकता हूं क्योंकि जब मैं मुख्य कंटेनर को 'डॉकर रन' के साथ चलाता हूं और इस व्यवहार को प्राप्त करने के लिए अपने डॉकरफ़ाइल में एंटरपॉइंट का उपयोग करता हूं तो मैं ऐसा करने में सक्षम हूं। – Donovan