El navegador de selenio dockerizado no puede acceder a la URL de prueba de Capybara

Estoy tratando de ejecutar las pruebas de características de Ruby on Rails en el navegador firefox independiente de selenio dockerizado. Parece que tengo problemas con las redes porque la instancia de selenio no se puede conectar a la url iniciada por Capybara.

Aquí está mi muestradocker-compose.yml archivo:

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"

Y comienzo Docker-compose con la red habilitada:

docker-compose --x-networking up

El script de prueba ejecuta un comando rspec como este

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

Para las pruebas de Docker, he habilitado el controlador remoto para 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

Y finalmente llamo a la prueba así:

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"
...

Puedo seguir los registros del contenedor del navegador y veo que el selenio recibe comandos de Capybara. El problema es que no se puede conectar a la url proporcionada, lo que puedo confirmar con la captura de pantalla.

Firefox no puede establecer una conexión con el servidor en mi aplicación: 56555

Para comprender mejor el problema, inicié la aplicación de rieles e intenté acceder a ella desde el contenedor de selenio. Noto que solo puedo acceder a la aplicación desde el contenedor de selenio si inicio la aplicación rails con un enlace ip.

rails s Puma -b 0.0.0.0

Esto parece un problema de red, pero no puedo encontrar una solución.

¿Cómo puedo hacer que el contenedor de selenio acceda a la aplicación de rieles que ejecuta pruebas de características Rspec con Capybara?

capybara (2.6.0)
selenium-webdriver (2.48.1)

Gracias por tu ayuda.

Respuestas a la pregunta(1)

Su respuesta a la pregunta