2013-02-13 26 views
16

के साथ एक बेस बॉक्स पैकेजिंग मेरे पास एक ल्यूसिड 32 बॉक्स के लिए एक विशिष्ट Vagrantfile है जो कुछ सुंदर मानक पैकेज (PHP/MySQL/Apache) स्थापित करता है, कुछ विशिष्ट पोर्ट अग्रेषण करता है और इसी तरह, मैंने इसे सेट अप किया है, चेकआउट Git से परियोजना और कुछ सर्वर विन्यास बदलने के लिए, मैं टीम का उपयोग करने पर अन्य डेवलपर्स के लिए इस बॉक्स पैकेज करना चाहते हैं, तो मैं आदेश का उपयोग करें:एक कस्टम Vagrantfile

vagrant package boxname --output test.box --vagrantfile Vagrantfile 

मैं एक test.box फ़ाइल मिलता है, यह पैकेजिंग में नोट कि यह मेरा विशिष्ट Vagrantfile जोड़ रहा है, तो मैं चलाता हूं:

vagrant box add boxname test.box 

ऐसा प्रतीत होता है में vagrant box list ठीक है, अब जब मैं कुछ परीक्षण निर्देशिका बनाने, और vagrant init boxnamevagrant up द्वारा पीछा किया और फिर यह प्रावधान है कि चेकआउट और सब कुछ से फाइलों के साथ बॉक्स, लेकिन नहीं सेटअप उचित पोर्ट अग्रेषण, करता है और में है तथ्य यह है कि मेरे Vagrantfile का उपयोग नहीं किया, मैंने इसे बिल्कुल पैक किया, लेकिन उस निर्देशिका में एक नया डिफ़ॉल्ट उत्पन्न किया।

मैं में देखा ~/.vagrant.d/बॉक्स/boxname यह, डिफ़ॉल्ट Vagrantfile है एक मैं में पैक के साथ शामिल/_Vagrantfile

वहाँ किसी भी तरह से मैं विशिष्ट Vagrantfile होने के लिए प्राप्त कर सकते हैं है जब मैं vagrant init boxname करता हूं तो उत्पन्न होता है?

उत्तर

21

यह वास्तव में सभी इरादे के रूप में काम कर रहा है। लोड होने पर Vagrant एकाधिक Vagrantfiles लोड करता है (केवल vagrant init से एक नहीं), और बॉक्स के साथ पैक किए गए Vagrantfile उनमें से एक है। अधिक जानकारी के लिए, यहां "Vagrantfile लोड ऑर्डर" के बारे में पढ़ें: https://www.vagrantup.com/docs/vagrantfile/#load-order-and-merging

संक्षेप में: वक्रेंट एक विशिष्ट क्रम में एकाधिक Vagrantfiles लोड करता है, और उनकी कॉन्फ़िगरेशन विलीन करता है। रूट Vagrantfile (vagrant init से एक) से पहले इस प्रक्रिया के हिस्से के रूप में बॉक्स Vagrantfile लोड किया गया है।

vagrant init के साथ उत्पन्न एक कंकाल Vagrantfile बनाने के लिए वर्तमान में कोई रास्ता नहीं है।

आपके द्वारा पैक किए गए कॉन्फ़िगरेशन में पोर्ट कॉन्फ़िगरेशन में रखे गए कॉन्फ़िगरेशन को ठीक से लोड किया जाना चाहिए, क्योंकि कॉन्फ़िगरेशन विलय करते समय, इसे सभी बंदरगाहों को आगे बढ़ाना चाहिए।

यदि यह नहीं हो रहा है, तो आपको एक बग की रिपोर्ट करनी चाहिए! लेकिन एक SO उत्तर के लिए, इस तरह चीजों को व्यवहार करना चाहिए।

+0

बस एक त्वरित अद्यतन: [Vagrantfile लोड आदेश] (https://www.vagrantup.com/docs/vagrantfile/#load-order) – eklingen

0

इस कोड मेरे लिए काम किया

vagrant package --output vagrant_example.box