gpt4 book ai didi

amazon-web-services - Amazon ECS 对 docker 中的 --shm-size 的支持

转载 作者:IT老高 更新时间:2023-10-28 21:40:39 29 4
gpt4 key购买 nike

我正在尝试使用 AWS EC2 容器服务 (ECS) 来运行 dockerized webdriver (Selenium) Grid。根据docker-selenium如果我们想在 selenium-node-chrome 上使用 chrome 浏览器运行长时间运行的测试,我们需要添加一些 shared memorymount a volume 到 docker 容器中。图片。

在我的 EC2 实例上,当我执行

df -h

我看到 /dev/shm 存在并且有 3.7Gb 的可用空间。但是,如果我使用 -v/dev/shm:/dev/shm 属性将卷安装到我的 chrome-node 容器,则在我运行测试时浏览器甚至都不会出现。但是如果我挂载父 /dev 目录,测试似乎会运行几秒钟,然后我得到“无法访问浏览器异常”,因为浏览器正在关闭(我能够确认这通过 VNC 查看器)。这让我意识到通过 ECS 接口(interface)/api 挂载卷是没有帮助的。

如果我通过传递 --shm-size 属性(如

)直接启动 docker 而无需通过 ECS 路由
docker run --shm-size=2500m ....

测试运行似乎没有任何问题。

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

最佳答案

解决方法:

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

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

我已经在 local docker 中测试了此更改,尽管它需要 --privileged 或至少 --cap-add SYS_ADMIN。我还没有在 AWS 上测试它。

关于amazon-web-services - Amazon ECS 对 docker 中的 --shm-size 的支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42757154/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com