2015-03-26 8 views
13

मेरे पास एक वाग्रेंट फ़ाइल है जो केवल आधार उबंटू सर्वर लाती है और फिर प्रावधान करने के लिए शेल स्क्रिप्ट पर निर्भर करती है। और यह शेल स्क्रिप्ट केवल मेरे पास मौजूद विभिन्न कंटेनर सेट करने के लिए डॉकर और डॉकर कंपोज़ स्थापित करने के बारे में है।क्या मैं सीधे वग्रेंट प्रावधान के लिए डॉकर कंपोज़ का उपयोग कर सकता हूं?

क्या ऐसा करने के लिए एक शेल स्क्रिप्ट का उपयोग करना समझ में आता है? या क्या डॉकर कंपोज़ के साथ सीधे प्रावधान करने के लिए वाग्रेंट को बताने का कोई तरीका है? मुझे नहीं पता कि यह वग्रेंट में पहले से मौजूद डॉकर प्रावधान से कितना अलग होगा।

उत्तर

34

मैंने हाल ही में एक ही प्रश्न उठाया है, और मैंने एक वारंटी प्रावधान प्लगइन बनाया है जो डॉकर-कंपोज़ स्थापित करता है और इसका उपयोग करके डॉकर लाता है। इसका इस्तेमाल करने के लिए:

  1. प्लग-इन इंस्टॉल: vagrant plugin install vagrant-docker-compose
  2. अपने Vagrantfile में निम्नलिखित पंक्तियां जोड़ें।

    config.vm.provision :docker 
    config.vm.provision :docker_compose, yml: "/vagrant/docker-compose.yml", rebuild: true, run: "always" 
    

एक पूर्ण उदाहरण के लिए देख https://github.com/leighmcculloch/vagrant-docker-compose

9

ऐसा लगता है कि योनि 1.7.2 के रूप में इस प्रकार के ऑपरेशन करने के लिए डॉकर प्रोविजनर के माध्यम से प्रत्यक्ष समर्थन नहीं है। प्रदाता के पास इसका कोई उल्लेख नहीं था। Vagrant docs: Docker provisioning, Vagrant docs: Docker commands

मेरा अनुमान है कि इस संस्करण के रूप में वाग्रेंट रखरखाव महसूस करते हैं कि डॉकर प्रदाता के साथ उपयोग किए जाने पर वग्रेंटफाइल समान व्यवहार प्रदान करता है। यह समझा सकता है कि क्यों उन्होंने डॉकर कंपोज़ के साथ प्रतिस्थापित होने से पहले चित्र के लिए सीधे समर्थन जोड़ने का प्रयास नहीं किया।

मुझे पता चला है कि वाकरेंट के साथ डॉकर का उपयोग करने के लिए आपको प्रत्येक उपकरण का उपयोग करने का सही मिश्रण मिलना चाहिए जो आपको अपने लिए इष्टतम लगता है। उदाहरण के लिए, आप डॉकरफाइल और डॉकर कमांड का उपयोग कर सकते हैं जैसे कि डॉकर वाग्ंटफाइल में उस तर्क को लागू करने की कोशिश करने से अधिक सहज ज्ञान युक्त रचनात्मक। वैकल्पिक रूप से, आप डॉकरफाइल के एक संकर का प्रयास कर सकते हैं और डॉकरफाइल का संदर्भ देने के लिए वग्रेंट का उपयोग कर सकते हैं जो आपको डॉकरफाइल में डॉकर तर्क देता है और सामान्य वाग्रेंटफाइल का उपयोग करके "ऑर्केस्ट्रेशन" बनाता है।

  1. उपयोग बहुत ही सरल Vagrant डोकर प्रदाता config, एक Dockerfile

  2. उपयोग डोकर प्रावधानकर्ता संदर्भित करने के लिए किसी और

    उपयोग d.build_dir = "." सब कुछ के लिए Dockerfile पर भरोसा करते हैं:

    यहाँ कि कैसे दिखाई दे सकती है Vagrant में सब कुछ शुरू करने के लिए

    vagrant up --provision-with docker 
    
संबंधित मुद्दे