2016-08-31 9 views
6

मेरा लक्ष्य एक डॉकर कंटेनर सेट करना है जो मेजबान मशीन से फ़ाइल परिवर्तनों का पता लगाने पर स्वचालित रूप से एक नोडजेएस सर्वर को पुनरारंभ करता है।Nodemon विंडोज डॉकर पर्यावरण में पुनरारंभ नहीं करता

मैंने परिवर्तनों के लिए फ़ाइलों को देखने के लिए नोडमन चुना है।

लिनक्स और मैक वातावरण पर, नोडमन और डॉकर बेकार ढंग से काम कर रहे हैं।

हालांकि, जब मैं विंडोज वातावरण में हूं, तो nodemon सर्वर को पुनरारंभ नहीं करता है।

फ़ाइलों को मेजबान मशीन पर अद्यतन किया गया है, और मेरे docker-compose.yml फ़ाइल में volumes पैरामीटर का उपयोग करके लिंक किया गया है।

मैं देख सकता हूं कि जब मैं docker exec <container-name> cat /path/to/fileChanged.js चलाता हूं तो फ़ाइलें बदल जाती हैं। इस तरह से मुझे पता है कि फ़ाइलों को सही ढंग से जोड़ा जा रहा है और कंटेनर में संशोधित किया गया है।

क्या कोई कारण है कि विंडोज़ के लिए सर्वर को सर्वर को पुनरारंभ नहीं करता है?

उत्तर

11

फ़ाइल सिस्टम घटनाओं को सुनने के बजाय फ़ाइल परिवर्तनों के लिए मतदान के लिए nodemon --legacy-watch का उपयोग करें।

वर्चुअलबॉक्स doesn't pass file system events over the vboxfs share आपके लिनक्स वीएम में। यदि आप विंडोज़ के लिए डॉकर का उपयोग कर रहे हैं, तो ऐसा लगता है कि हाइपरवी फाइल सिस्टम इवेंट्स को प्रचारित नहीं करता है।

+0

आपको बहुत बहुत धन्यवाद! मैंने अभी इस खंड को [Nodemon README] में देखा है (https://github.com/remy/nodemon#application-isnt-restarting)। मैं आपके अविश्वसनीय प्रतिक्रिया समय की सराहना करता हूं। – RyanNHG

+0

आप एक मतदान समय भी निर्दिष्ट कर सकते हैं: बस इसे nodemon.json कॉन्फ़िगरेशन फ़ाइल में जोड़ें: "legacyWatch": true, "pollingInterval": 4000 –

+0

नए आने वालों के लिए और इस तरह: आपके डॉकरफ़ाइल से इसके लिए एक आदेश है: 'सीएमडी [ "nodemon", "-L", "your_file_here"] '। या इसी तरह आप इस तरह अपने डॉकरफाइल में कुछ डाल सकते हैं: 'सीएमडी ["एनपीएम", "रन", "कस्टम_स्क्रिप्ट_नाम"]' और फिर 'package.json' में' स्क्रिप्ट्स 'डालें: { "custom_script_name": "nodemon -L your_file_here ", ... } 'इनमें से कोई भी' डॉकर-कंपोज़ अप 'के बाद आपके डॉकरफ़ाइल से यह आदेश चलाएगा। –

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