Amazon ECS在docker中对--shm-size的支持

问题描述 投票:6回答:1

我正在尝试使用AWS EC2容器服务(ECS)来运行dockerized webdriver(Selenium)网格。根据docker-selenium github页面,如果我们想使用shared memory映像上的chrome浏览器运行长时间运行的测试,则需要向docker容器添加一些mount a volumeselenium-node-chrome

在我的EC2实例上,当我执行]时>

df -h

我看到/dev/shm存在并具有3.7Gb of available free space。但是,如果使用-v /dev/shm:/dev/shm属性将卷安装到chrome-node容器中,则在运行测试时浏览器甚至无法启动。但是,如果我挂载父/dev目录,测试似乎会运行几秒钟,然后我会收到“无法到达浏览器异常”,因为浏览器随后被关闭了(我能够通过VNC Viewer确认这一点)。这使我意识到通过ECS接口/ api装载卷将无济于事。

[如果我通过传递--shm-size属性,而无需通过ECS路由而直接启动docker,则>]

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

测试似乎可以顺利进行。

但是,截至目前ECS clearly does not support the --shm-size属性。那么,如何解决或解决此问题并仍然使用ECS传递--shm-size属性?是避免使用ECS的唯一方法,还是还有其他更好的方法?

我正在尝试使用AWS EC2容器服务(ECS)来运行dockerized webdriver(Selenium)网格。根据docker-selenium github页面,我们需要添加一些共享内存或安装一个...

解决方法:

添加以下(EntryPoint)命令作为dockerfile中的最后一行

--shm-size

我已经在local docker]中测试了此更改,尽管它需要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 或至少是--privileged。我尚未在AWS上对其进行测试。

amazon-web-services docker amazon-ec2 shared-memory amazon-ecs
1个回答
0
投票

解决方法:

© www.soinside.com 2019 - 2024. All rights reserved.