【发布时间】:2017-08-03 02:04:53
【问题描述】:
我正在尝试使用 AWS EC2 容器服务 (ECS) 来运行 dockerized webdriver (Selenium) Grid。根据docker-selenium github 页面,如果我们想在selenium-node-chrome 图像上使用chrome 浏览器运行长时间运行的测试,我们需要添加一些shared memory 或mount a volume 到docker 容器中。
在我的 EC2 实例上,当我执行
df -h
我看到/dev/shm 存在并且有3.7Gb of available free space。但是,如果我使用 -v /dev/shm:/dev/shm 属性将卷安装到我的 chrome-node 容器,则在我运行测试时浏览器甚至都不会出现。但是,如果我挂载父目录 /dev ,测试似乎会运行几秒钟,然后我得到“无法访问浏览器异常”,因为浏览器正在关闭(我能够通过 VNC 查看器确认这一点)。这让我意识到通过 ECS 接口/api 挂载卷是没有用的。
如果我通过 --shm-size 之类的属性直接启动 docker 而不通过 ECS 路由
docker run --shm-size=2500m ....
测试运行似乎没有任何问题。
但是,截至目前,ECS clearly does not support the --shm-size 的财产。那么如何修复或解决这个问题并仍然使用 ECS 传递--shm-size 属性?避免使用 ECS 是这里的唯一方法还是有其他更好的方法?
【问题讨论】:
标签: amazon-web-services docker amazon-ec2 shared-memory amazon-ecs