Amazon ECS支持docker

时间:2017-03-13 05:29:03

标签: amazon-web-services docker amazon-ec2 shared-memory amazon-ecs

我正在尝试使用AWS EC2容器服务(ECS)来运行dockerized webdriver(Selenium)Grid。根据{{​​3}} github页面,如果我们想使用docker-selenium上的Chrome浏览器运行长时间运行的测试,我们需要向docker容器添加一些shared memorymount a volume图像。

在我的EC2实例上,当我做

df -h

我看到/dev/shm存在并且3.7Gb of available free space。但是如果我使用-v /dev/shm:/dev/shm属性将卷装入我的chrome节点容器,那么当我运行测试时,浏览器甚至不会出现。但是,如果我挂载父/dev目录,测试似乎运行了几秒钟,然后我得到了#34;无法达到浏览器异常"因为浏览器然后关闭(我能够通过VNC Viewer确认)。这让我意识到通过ECS接口/ api安装卷不会有帮助。

如果我直接启动docker而不通过ECS路由传递--shm-size属性,如

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

测试似乎没有任何问题。

但是,selenium-node-chrome属性截至目前。那么如何解决或解决这个问题仍然使用ECS传递--shm-size属性?在这里避免使用ECS是唯一的方法还是有其他更好的方法?

1 个答案:

答案 0 :(得分: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

我已在本地docker 中测试了此更改,并且它按预期工作(尚未在aws上测试)。

感谢Anor提供此解决方法。 资料来源:anor's blog