J'ai conteneurisé une application qui est le pilote d'essai d'un test de sélénium automatisé. Le serveur Selenium (également appelé Selenium Hub) fonctionne dans un autre conteneur, ainsi que dans le nœud Firefox, sous localhost: 4444. Mais mon application ne parvient pas à atteindre: Docker Container ne peut pas atteindre le port local 4444. Pourquoi?
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: '10d3b5fd1010', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '3.16.0-4-amd64', java.version: '1.8.0_11 1'
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:665)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:158)
at de.services.impl.TestSetupFactory.getWebDriver(TestSetupFactory.java:408)
at de.services.impl.TestSetupFactory.getSeleniumService(TestSetupFactory.java:279)
at de.services.impl.AutomationServiceImpl.executeTests(AutomationServiceImpl.java:220)
at de.start.Start.main(Start.java:25)
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:4444 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: C onnection refused (Connection refused)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
j'ai commencé ces conteneurs via docker-Compose:
version: '2'
services:
hub:
image: selgrid:1.1
ports:
- "4444:4444"
firefox:
#pull latest from docker hub
image: selenium/node-firefox
volumes:
- /dev/urandom:/dev/random
depends_on:
- hub
environment:
- HUB_PORT_4444_TCP_ADDR=hub
- HUB_PORT_4444_TCP_PORT=4444
testautomation:
#run testautomation app
image: volumetest
links:
- "hub"
ports:
- "9005:9005"
Je crois qu'il ya une erreur dans mon docker-compose, mais je ne peux pas le comprendre. S'il vous plaît aider! btw: Je cours sous Windows 7 et utilise Docker avec une machine virtuelle Vagrant. Dans mon fichier Vagrantfile, j'ai mis en correspondance les ports 4444 et 9005 avec le système hôte. Si j'ouvre mon navigateur local et atteins pour localhost: 4444, je peux voir la console de grille de sélénium. Pourquoi cela ne fonctionnera pas à partir de mon conteneur d'applications?
D'abord mon conteneur ne pouvait même pas atteindre centre: 4444, mais quand j'ai commencé tout à partir d'un seul fichier Compose docker et Linked le moyeu à mon conteneur d'application, tout juste a bien fonctionné. Merci – Timo