我有一个包含maven Selenium项目的docker镜像,它将在主机"dev-mock.abc.com"上进行测试。以下是我的 docker 命令来触发要执行的硒测试。
docker run --rm --privileged
--add-host="dev-mock.abc.com:123.45.67.89"
${selenium-image}
我发现,在运行时,该容器的/etc/hosts已更新为以下条目:"123.45.67.89 dev-mock.abc.com",但在硒执行期间,它仍然无法解决这个"dev-mock.abc.com"名称。
有谁知道 selenium 在执行时是否在/etc/hosts 文件中获取自定义条目?谢谢。
也许容器中缺少具有正确内容的/etc/nsswitch.conf
,因此硒"跳过"/etc/hosts
并尝试使用 DNS。尝试:
echo "hosts: files dns" > /tmp/nsswitch.conf
docker run --rm --privileged
--volume /tmp/nsswitch.conf:/etc/nsswitch.conf
--add-host="dev-mock.abc.com:123.45.67.89"
${selenium-image}
另一种选择是在主机操作系统上编辑/etc/hosts
,然后将主机操作系统网络用于硒容器:
docker run --rm --privileged
--net=host
${selenium-image}