मैं डॉकर-कंपोज़ का उपयोग करके ऑर्केस्ट्रेटेड 'सिस्टम' में एक सेवा पर काम कर रहा हूं। यह सेवा एक संकलित भाषा में लिखी गई है और जब मैं बदलाव करता हूं तो मुझे इसे पुनर्निर्माण करने की आवश्यकता होती है। मैं परिवर्तनों पर तेज़ी से पुन: प्रयास करने का सबसे अच्छा तरीका ढूंढने की कोशिश कर रहा हूं।एक डॉकर-कंपोज़ सेटअप में संकलित घटकों के लिए डॉकर डेवलपमेंट वर्कफ़्लो
मैंने 2 'वर्कफ़्लो' की कोशिश की है, दोनों नवीनतम स्रोत प्राप्त करने के लिए volume:
के माध्यम से स्रोत निर्देशिका से जुड़े होने पर भरोसा करते हैं।
- सभी के साथ
docker-compose up -d
- बंद करो विकास के तहत सेवाओं और रन
- एक नए कंटेनर भागो कि कंटेनर रन के भीतर छवि
docker-compose run --name SERVICE --rm SERVICE /bin/bash
- का उपयोग कर संकलन के लिए कंटेनर समर्थन कंटेनर लाओ खुला बंदरगाह पर आवेदन।
- चल रही प्रक्रिया को रोकने और फिर पुनर्निर्माण करके पुनरारंभ करें।
docker-compose kill SERVICE
- पुनः प्रारंभ सेवा
docker-compose up -d --no-deps SERVICE
समस्या दोनों है: बी
- बंद करो सेवा (निर्माण करने के लिए और फिर से चलाने के सेवा Dockerfile
CMD
की आवश्यकता है) को स्थानीय रूप से सेवा को पुनरारंभ करने के लिए बहुत लंबा समय लगता है (मेरे लैपटॉप पर स्वतंत्र रूप से चल रहा है o एफ डॉकर)। यह सेटअप व्याख्या की गई भाषाओं के साथ ठीक प्रतीत होता है जो बदली गई फ़ाइलों को हॉट-रीलोड कर सकते हैं लेकिन मुझे अभी तक संकलित भाषा सेवाओं के लिए एक उपयुक्त फास्ट सिस्टम नहीं मिला है।
क्या आपके लैपटॉप पर डॉकर चल रहा है, या दूरस्थ रूप से? आश्चर्य की बात है कि "स्थानीय रूप से सेवा को पुनरारंभ करना" के साथ आपका क्या मतलब है। क्या इसे "पुनरारंभ करने में बहुत लंबा" लग रहा है? धीमा संकलन कर रहा है? शुरुआत में? – thaJeztah
मैंने इस प्रश्न में यह स्पष्ट करने का प्रयास किया है। डॉकर डॉकर मशीन के माध्यम से चल रहा है। जब मैं कहता हूं 'स्थानीय रूप से चल रहा है' मेरा मतलब है कि डॉकर का उपयोग किये बिना सेवा बनाना और चलाना। यह एक विकल्प है लेकिन इसका मतलब है कि मुझे डेटाबेस यूआरएल आदि जैसी चीजों को बदलने की जरूरत है। –
आह, ठीक है, मेरा सबसे अच्छा अनुमान यह है कि, सबसे पहले, मेजबान और वर्चुअलबॉक्स वीएम के बीच फ़ाइल साझा करना (अच्छी तरह से कहने के लिए) बहुत प्रदर्शन नहीं; यह वर्चुअलबॉक्स filesharing की एक सीमा है। दूसरा, वीएम अधिकतम प्रदर्शन के लिए ट्यून नहीं किया जा सकता है, जो संकलन अवधि में अंतर डाल सकता है। क्या आपने कोशिश की है, उदा। वीएम के लिए स्मृति की मात्रा और/या सीपीयू की संख्या बढ़ाएं? – thaJeztah