O navegador de selênio encaixado não pode acessar o URL de teste da Capivara

Estou tentando executar os testes de recursos do Ruby on Rails no navegador firefox de dockerized selenium autônomo. Parece que estou tendo problemas com a rede porque a instância do selênio não pode se conectar ao URL iniciado pela Capivara.

Aqui está minha amostradocker-compose.yml Arquivo:

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"

E começo o docker-compondo com a rede ativada:

docker-compose --x-networking up

O script de teste executa um comando rspec como este

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

Para testes do docker, habilitei o driver 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

E finalmente chamo o teste assim:

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

Posso ajustar os logs do contêiner do navegador e vejo que o selênio recebe comandos da Capybara. O problema é que ele não pode se conectar ao URL fornecido, o que posso confirmar com a captura de tela.

O Firefox não pode estabelecer uma conexão com o servidor no meu aplicativo: 56555

Para entender melhor o problema, iniciei o aplicativo rails e tentei acessá-lo a partir do contêiner de selênio. Percebo que só posso acessar o aplicativo a partir do contêiner de selênio se eu iniciar o aplicativo rails com uma ligação IP.

rails s Puma -b 0.0.0.0

Parece um problema de rede, mas não consigo descobrir uma solução.

Como posso fazer com que o contêiner de selênio acesse o aplicativo Rails executando testes de recurso Rspec com Capybara?

capybara (2.6.0)
selenium-webdriver (2.48.1)

Obrigado pela ajuda.

questionAnswers(1)

yourAnswerToTheQuestion