2016-03-04 2 views
18

में आदेशों और कंटेनर कमांड के बीच क्या अंतर है elasticbean talk में।लोचदारबीन टॉक

जब .ebextensions में हम सेटअप एक्सटेंशन

मैं आश्चर्य क्या अंतर है commands और

के बीच container_commands मेरे आदेश इस

container_commands: 
    04_insert_app: 
    command: "cat .ebextensions/insertapp_job.txt > /etc/cron.d/insertapp_job && chmod 644 /etc/cron.d/insertapp_job" 
    leader_only: true 

container_commands की तरह है काम है।

कमांड: त्रुटि .ebextensions/insertapp_job.txt

उत्तर

1

नहीं मिला है मैंने पाया मेरी यहाँ aws offcial docs

commands जवाब: EC2 उदाहरण

container_commands पर आदेश पर अमल: अपने कंटेनर के लिए आदेश पर अमल

24

इन दो टुकड़ों के बीच बड़ा अंतर यह है कि जब लोचदार बीनस्टॉक तैनाती प्रक्रिया में वे हैं चलाते हैं।

आदेश

इन आदेशों, तैनाती की प्रक्रिया में जल्दी चलाए जा रहे हैं इससे पहले कि वेब सर्वर स्थापित किया गया है, और अपने आवेदन कोड अनपैक किया गया है से पहले:

आदेशों वर्णमाला के क्रम में कार्रवाई की जाती है नाम से, और वे एप्लिकेशन से पहले भागते हैं और वेब सर्वर सेट अप होते हैं और एप्लिकेशन संस्करण फ़ाइल निकाली जाती है। 1

डिफ़ॉल्ट रूप से, आदेश रूट उपयोगकर्ता के होम फ़ोल्डर में चलाए जाते हैं। यह और ईबी के व्यवहार के कई अन्य टुकड़ों को विकल्पों के माध्यम से बदला जा सकता है (काम करने वाली निर्देशिका, त्रुटि पर जारी रखना, आदेशों को पास करने के लिए पर्यावरण चर, आदि) जिसे आदेश के साथ पारित किया जा सकता है।

कंटेनर आदेश

इन आदेशों, तैनाती प्रक्रिया में बाद में चलाए जा रहे हैं के बाद वेब सर्वर स्थापित किया गया है, और अपने आवेदन कोड मचान फ़ोल्डर में अनपैक कर दिया गया है के बाद, लेकिन अपने आवेदन से पहले "तैनात किया गया है "(अपने अंतिम स्थान पर मचान फ़ोल्डर को ले जाकर):

कंटेनर के बाद आवेदन और वेब सर्वर की स्थापना किया गया है और आवेदन संस्करण संग्रह निकाला गया है, लेकिन इससे पहले आवेदन संस्करण तैनात किया जाता है कमांड चलाने। गैर-कंटेनर कमांड और अन्य अनुकूलन संचालन निकाले जा रहे एप्लिकेशन स्रोत कोड से पहले किए जाते हैं। 2

डिफ़ॉल्ट रूप से, इन आदेशों मचान फ़ोल्डर में चलाने के लिए, ताकि एक बार अपने आवेदन तैनात किया जाता है कोई भी परिवर्तन वर्तमान फ़ोल्डर बनाने बना रहेगा (पथ हालांकि बदल जाएगा, इसलिए संबंधित लिंक्स के बारे में सावधान रहना होगा!) ।

कंटेनर आदेशों सभी एक ही विकल्प का समर्थन (गैर कंटेनर) के रूप में आदेश, लेकिन वे भी एक "leader_only" विकल्प का समर्थन:

आप केवल करने के लिए leader_only उपयोग कर सकते हैं एक उदाहरण पर कमांड चलाएँ, या एक परीक्षण कमांड सही होने पर केवल आदेश चलाने के लिए एक परीक्षण को कॉन्फ़िगर करें। नेता-केवल कंटेनर आदेश केवल पर्यावरण निर्माण और तैनाती के दौरान निष्पादित किए जाते हैं, जबकि अन्य आदेश और सर्वर अनुकूलन संचालन हर बार एक उदाहरण प्रावधान या अद्यतन किया जाता है। 2

+1

मेरी इच्छा है कि मैंने इसे दो दिन पहले देखा था ... पोस्ट करने के लिए धन्यवाद। :-) – speckledcarp

+0

"सापेक्ष लिंक के बारे में सावधान रहें"। क्या आपका मतलब पूर्ण लिंक है? स्रोत बंडल के भीतर रहने वाले सापेक्ष लिंक ठीक होना चाहिए, है ना? –

4

@Tiro के अतिरिक्त और @ t10508hn जवाब मैं सिर्फ स्पष्ट करने के लिए कि commands और container_commands दोनों होस्ट मशीन पर क्रियान्वित कर रहे हैं चाहते हैं के रूप में।

डॉकर कंटेनर के भीतर आदेश निष्पादित करने के लिए Dockerfile का उपयोग करें।

यह भ्रम का एक बिंदु था जब मुझे leader_only के साथ कुछ आदेश निष्पादित करना पड़ा और माना जाता है कि container_commands वास्तव में कंटेनर के भीतर निष्पादित किया गया था।

संबंधित मुद्दे