डॉकर कंटेनर में स्टडआउट बफरिंग: डेबियन बनाम उबंटू का एक मामला
डॉकर कंटेनर में कोड निष्पादित करते समय, स्टडआउट बफरिंग हो सकती है कुछ उदाहरणों में लेकिन अन्य में नहीं। यह समस्या ऐसे परिदृश्य में देखी गई है जहां stdout को io.MultiWriter का उपयोग करके कंसोल और लॉग फ़ाइल दोनों पर निर्देशित किया जाता है।
मूल कारण: प्लेटफ़ॉर्म अंतर
मूल इस व्यवहार का कारण डेबियन-आधारित छवियों और उबंटू-आधारित छवियों के बीच प्लेटफ़ॉर्म अंतर में निहित है। डेबियन डिफ़ॉल्ट रूप से स्टडआउट को बफर करता हुआ प्रतीत होता है, जबकि उबंटू स्टडआउट को समकालिक रूप से संभालता है। उबंटू पर अन्य: भरोसेमंद:
# भरोसेमंद डॉकरफ़ाइल उबंटू से:भरोसेमंद # ... (शेष डॉकरफ़ाइल जैसा कि समस्या विवरण में दिया गया है) # व्हीज़ी डॉकरफ़ाइल डेबियन से:व्हीज़ी # ... (बाकी डॉकरफ़ाइल जैसा कि समस्या विवरण में दिया गया है)व्हीज़ छवि के आधार पर कंटेनर में प्रोकवैप चलाने से बफर्ड स्टडआउट होता है, जबकि भरोसेमंद छवि के आधार पर इसे कंटेनर में चलाने पर परिणाम मिलता है तुल्यकालिक स्टडआउट। हालाँकि, डॉकर के बिना डेबियन वीएम पर प्रोक्रैप चलाने से स्टडआउट बफरिंग प्रदर्शित नहीं होती है।
मैन्युअल रूप से फ्लश आउटपुट:# TRUSTY Dockerfile FROM ubuntu:trusty # ... (rest of the Dockerfile as provided in the problem description) # WHEEZY Dockerfile FROM debian:wheezy # ... (rest of the Dockerfile as provided in the problem description)stdbuf का उपयोग करें:
stdbuf को बाध्य करने के लिए stdbuf कमांड का उपयोग करने का प्रयास करें असंबद्ध होना. हालाँकि, यह हमेशा प्रभावी नहीं हो सकता है। , सबसे अच्छा समाधान विशिष्ट एप्लिकेशन और ऑपरेटिंग वातावरण पर निर्भर करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3