Próbuję użyć usługi kontenerowej AWS EC2 (ECS) w celu uruchomienia sieci szkieletu do sewerera (Selenium). Zgodnie z docker-selenium strona github, musimy albo dodać jakieś shared memory
lub mount a volume
do kontenera docker, jeśli chcemy uruchomić długotrwałe testy przy użyciu przeglądarki chrome na obrazie selenium-node-chrome.Obsługa Amazon ECS dla --shm-size w docker
Na moim instancji EC2, kiedy robię
df -h
widzę, że /dev/shm
istnieje i ma 3.7Gb of available free space
. Ale jeśli podłączę wolumin do mojego kontenera z węzłem chrome przy użyciu właściwości -v /dev/shm:/dev/shm
, przeglądarka nie pojawi się nawet po uruchomieniu testu. Ale jeśli zamontuję katalog macierzysty /dev
, testy będą działać przez kilka sekund, a następnie otrzymam komunikat "Nie można uzyskać dostępu do przeglądarki", ponieważ przeglądarka jest następnie zamykana (mogłem to potwierdzić za pomocą przeglądarki VNC Viewer). Daje mi to do zrozumienia, że montaż woluminu za pośrednictwem interfejsu ECS/api nie pomoże.
Gdybym bezpośrednio rozpocząć docker bez przechodzenia przez drogi ECS przekazując właściwość --shm-size
jak
docker run --shm-size=2500m ....
testów wydaje się działać bez żadnych problemów.
Ale, ECS clearly does not support the --shm-size
własność od teraz. Jak naprawić lub obejść ten problem i nadal korzystać z usługi ECS, aby przekazać właściwość --shm-size
? Czy unikanie użycia ECS jest tu jedyną metodą, czy jest jakiś inny lepszy sposób?