自定义的/ etc / hosts文件上的docker-selenium?

时间:2018-09-28 19:15:01

标签: selenium docker dns selenium-chromedriver

我有一个包含maven硒项目的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”名称。

有人知道硒在执行时是否在/ etc / hosts文件中获得了定制条目吗?谢谢。

1 个答案:

答案 0 :(得分:1)

也许/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}

另一种选择是在主机OS上编辑/etc/hosts,然后将主机OS网络用于硒容器:

docker run --rm --privileged \
       --net=host \
       ${selenium-image}