6

में --shm-size के लिए अमेज़ॅन ईसीएस समर्थन मैं डॉकराइज्ड वेबड्राइवर (सेलेनियम) ग्रिड चलाने के लिए एडब्ल्यूएस ईसी 2 कंटेनर सेवा (ईसीएस) का उपयोग करने की कोशिश कर रहा हूं। docker-selenium गीथब पेज के अनुसार, हमें छवि पर क्रोम ब्राउज़र का उपयोग करके लंबे समय तक चलने वाले परीक्षणों को चलाने के लिए डॉकर कंटेनर में shared memory या mount a volume जोड़ने की आवश्यकता है।डॉकर

मेरी EC2 उदाहरण पर, जब मैं एक

df -h 

मुझे लगता है कि /dev/shm मौजूद है और 3.7Gb of available free space पड़ता है। लेकिन अगर मैं -v /dev/shm:/dev/shm संपत्ति का उपयोग कर वॉल्यूम को अपने क्रोम-नोड कंटेनर पर माउंट करता हूं, तो जब भी मैं परीक्षण चलाता हूं तो ब्राउजर भी नहीं आ रहा है। लेकिन अगर मैं पैरेंट /dev निर्देशिका को माउंट करता हूं, तो परीक्षण कुछ सेकंड के लिए चलते हैं और फिर मुझे "ब्राउज़र अपवाद तक पहुंचने में असमर्थ" मिलता है क्योंकि ब्राउजर बंद हो रहा है (मैं वीएनसी व्यूअर के माध्यम से इसकी पुष्टि करने में सक्षम था)। इससे मुझे एहसास हो जाता है कि ईसीएस इंटरफ़ेस/एपीआई के माध्यम से वॉल्यूम बढ़ाना मदद नहीं करेगा।

अगर मैं सीधे तरह

docker run --shm-size=2500m .... 

परीक्षण --shm-size संपत्ति पारित करके ईसीएस मार्ग से गुजर रही बिना डोकर शुरू कोई परेशानी के बिना चलने लगते हैं।

लेकिन, ECS clearly does not support the --shm-size अभी तक संपत्ति। तो इस समस्या को हल करने या काम करने के लिए कैसे करें और अभी भी --shm-size संपत्ति को पारित करने के लिए ईसीएस का उपयोग करें? ईसीएस के उपयोग से बचने का एकमात्र तरीका यहां है या क्या कोई और बेहतर तरीका है?

उत्तर

0

का संभावित हल:

नीचे जोड़ें (EntryPoint) अपने dockerfile में अंतिम पंक्ति के रूप आदेश

ENTRYPOINT shm_dir=/dev/shm;umount $shm_dir;mount -t tmpfs -o rw,nosuid,nodev,noexec,relatime,size=*<size eg. 500m,1Gb>* shm $shm_dir && /bin/bash 

मैं स्थानीय डोकर में इस बदलाव का परीक्षण किया है और यह उम्मीद के रूप में (अभी तक परीक्षण करने के लिए काम कर रहा है aws पर)।

धन्यवाद इस कामकाज के लिए अनोर। स्रोत: anor's blog