Dockerized браузер селена не может получить доступ к URL-адресу теста Capybara

Я пытаюсь запустить функциональные тесты Ruby on Rails в автономном браузере Firefox с докритизированным селеном. Похоже, у меня проблемы с сетью, потому что экземпляр selenium не может подключиться к URL, запущенному Capybara.

Вот мой образецdocker-compose.yml файл:

ff:
  image: selenium/standalone-firefox:2.48.2
  container_name: firefox-browser
web:
  build: .
  container_name: my-app
  volumes:
    - ".:/home/ubuntu/my-app"
  command: /bin/bash -l scripts/docker-start-tests.sh
  ports:
    - "3000:3000"

И я начинаю docker-compose с включенной поддержкой сети:

docker-compose --x-networking up

Тестовый скрипт запускает команду rspec, например:

rspec ./spec/features/login_spec.rb:43

Для тестов докера я включил удаленный драйвер для Capybara:

Capybara.register_driver :docker_firefox do |app|
  Capybara::Selenium::Driver.new(app, {
    browser: :remote,
    url: "#{ENV['FF_URL']}/wd/hub",
    desired_capabilities: Selenium::WebDriver::Remote::Capabilities.firefox
  })
end

И, наконец, я называю тест следующим образом:

unless ENV['FF_URL'].nil?
  Capybara.current_driver = :docker_firefox
  Capybara.javascript_driver = :docker_firefox

  Capybara.app_host = "http://my-app:56555"
  Capybara.server_port = "56555"
  # Capybara.server_host = "my-app"
end

visit root_path
save_and_open_screenshot
click_link "Sign in"
...

Я могу следить за журналами контейнеров браузера и вижу, что селен получает команды от Капибары. Проблема в том, что он не может подключиться к предоставленной ссылке, что я могу подтвердить с помощью скриншота.

Firefox не может установить соединение с сервером в my-app: 56555

Чтобы лучше понять проблему, я запустил приложение rails и попытался получить к нему доступ из контейнера с селеном. Я заметил, что я могу получить доступ к приложению только из контейнера селена, если я запускаю приложение rails с привязкой ip.

rails s Puma -b 0.0.0.0

Это похоже на проблему с сетью, но я не могу найти решение.

Как я могу получить доступ к контейнеру селена в приложении rails, на котором выполняются функциональные тесты Rspec с Capybara?

capybara (2.6.0)
selenium-webdriver (2.48.1)

Спасибо за вашу помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос