6

Dockingized webdriver (Selenium) Grid'i çalıştırmak için AWS EC2 Container Service'i (ECS) kullanmaya çalışıyorum. docker-selenium github sayfasına göre, selenium-node-chrome görüntüsündeki krom tarayıcısını kullanarak uzun koşu testlerini çalıştırmak istiyorsak, shared memory veya mount a volume docker kabına eklememiz gerekir. Ben /dev/shm var ve 3.7Gb of available free space olduğunu görüyoruz birDocker'da --shm boyutu için Amazon ECS desteği

df -h 

yapmak benim EC2 örneğinde

. Ancak, birimi -v /dev/shm:/dev/shm özelliğini kullanarak chrome-node kapsayıcısına bağlarsam, bir test çalıştırdığımda tarayıcı bile gelmiyor. Ancak, /dev ana dizini bağlarsam, birkaç saniyeliğine test çalışır gibi görünüyor ve daha sonra tarayıcı kapatılıyor (Bu VNC Görüntüleyici üzerinden onaylamak mümkün oldu) "Tarayıcı özel durumuna ulaşılamıyor" alıyorum. Bu bana ECS arayüzü/api aracılığıyla bir hacmin monte edilmesinin yardımcı olmayacağını anlamamı sağlıyor.

doğrudan

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

testler gibi --shm-size özelliği geçerek ECS rota geçmeden liman işçisi başlatırsanız herhangi bir sorun olmadan çalıştırmak gibi görünüyor.

Ancak, ECS clearly does not support the --shm-size özelliği şu an itibariyle. Peki bu sorunu düzeltmek veya çalışmak ve hala --shm-size özelliğini geçmek için ECS'yi kullanmak nasıl? ECS kullanımından kaçınmak tek yol mu, yoksa başka bir yolu var mı?

cevap

0

bir geçici çözüm: senin dockerfile son satırı olarak

aşağıda Ekle (GirişNoktası) komutu

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 

Ben yerel docker bu değişikliği test ettik ve beklendiği gibi (henüz teste çalışıyor aws’da.

Bu geçici çözüm için Anor'a teşekkürler. Kaynak: anor's blog