Docker "Failed to open TCP connection to 127.0.0.1:4444" when 运行 selenium/capybara 在容器中测试

Docker "Failed to open TCP connection to 127.0.0.1:4444" when running selenium/capybara test in container

我在 ruby 应用程序中有一些 Selenium Webdriver/Capybara 自动化设置。除了在使用 Linux 的 VirtualBox VM 中,我还有一个用于 Selenium 网格 docker run -d -p 4444:4444 --name selenium-hub -e GRID_TIMEOUT=120000 selenium/hub:2.53.0 的 docker 容器和一个 firefox 节点 docker run -d --link selenium-hub:hub selenium/node-firefox:2.53.0。在 VM 上向 docker_opts 添加 DNS 条目后,在我的主机中,如果我 运行 我的 Selenium 测试(它在我的 VM 上使用网格)一切正常。 在此之后,我在我的虚拟机上的 ruby 容器中沿着网格和容器设置了我的自动化代码。容器构建得很好。我也可以毫无问题地附加到它,并且我的所有代码都按预期存在。如果尝试 运行 规格 ex,则从我的自动化容器中的终端。 rspec spec/some_spec.rb 我会收到连接被拒绝的错误

"Failed to open TCP connection to 127.0.0.1:4444 (Connection refused - connect(2) for \"127.0.0.1\" 端口 4444)"

在谷歌搜索此问题的 18 个结果中,我看到的唯一似乎可行的内容提到创建一座桥梁,我不太明白。非常感谢任何有关如何纠正此问题的建议。

没有看到您的规格就很难说,但我猜您在测试中连接到 127.0.0.1:4444 上的 selenium?

如果是这样,您现在应该在 hub:4444 上连接到它,因为该名称将解析为您的 selenium hub 容器的 IP。