2016-04-06 28 views
5

mogę rozpocząć piasty selenu wizerunek poprzez:Jak uruchomić koncentrator selenowy i jeden połączony węzeł za pomocą dokowania-komponowania zamiast za pomocą okna dokowanego?

docker run --rm=true -P -p 4444:4444 --name selenium-hub selenium/hub 

i dodać pracownika firefox poprzez:

docker run --rm=true --link selenium-hub:hub selenium/node-firefox 

Idąc na http://localhost:4444/grid/console następnie pokaże siatkę dobrze.

Nie chcę używać dokowania za każdym razem, ale mam tę samą konfigurację przez docker-compose.

Stąd Myślałem, że mogę po prostu zrobić to w moim docker-compose.yml:

selenium_hub: 
    image: selenium/hub 
    ports: ["4444:4444"] 
    links: 
     - selenium_firefox_worker 
selenium_firefox_worker: 
    image: selenium/node-firefox 

Jednak po uruchomieniu docker-compose up otrzymuję komunikat:

selenium_firefox_node_1 | Not linked with a running Hub container 
selenium_firefox_node_1 exited with code 1 

i stąd siatka nie wykazują żadnych węzeł .

Myślałem, że można robić łączenie w niewłaściwej kolejności, ale nawet:

selenium_hub: 
    image: selenium/hub 
    ports: ["4444:4444"] 
selenium_firefox_node: 
    image: selenium/node-firefox 
    links: 
     - selenium_hub 

plony w tym samym błędem.

Co robię źle?

+0

Myślę, że to nazwa hosta. Może próbujesz połączyć się z nazwą hosta "hub", ale link, który tworzysz, jest w rzeczywistości "selenium_firefox_worker"? –

Odpowiedz

3
selenium_hub: 
    image: selenium/hub 
    ports: ["4444:4444"] 
selenium_firefox_node: 
    image: selenium/node-firefox 
    links: 
     - "selenium_hub:hub" 

Podczas gdy k0pernikus' answer działa, po prostu chciałem wyjaśnić powód jego niepowodzenia.

Pojemniki węzeł oczekiwać, aby połączyć się z piastą, która jest rozpoznawana jako po prostu:

hub 

zamiast w swoim przykładem, gdzie będzie rozpoznawana jako:

selenium_hub 
5

Stumbling across this tutorial, podano tę składnię. I chociaż jest podobny do jednego z moich podejść, zadziałało.

hub: 
    image: selenium/hub 
    ports: 
    - "4444:4444" 
firefox: 
    image: selenium/node-firefox 
    links: 
    - hub 
chrome: 
    image: selenium/node-chrome 
    links: 
    - hub 

Wygląda na to, że coś jest nazywane, ale nie jestem pewien.

6

Na marginesie, w przypadku używania formatu dokowanego w wersji 2 należy podać parę zmiennych env, w przeciwnym razie węzeł nie połączy się z koncentratorem:

version: '2' 
services: 
    hub: 
     image: selenium/hub 
     ports: 
      - "4444:4444" 

    firefox: 
     image: selenium/node-firefox 
     environment: 
      HUB_PORT_4444_TCP_ADDR: hub 
      HUB_PORT_4444_TCP_PORT: 4444 
     links: 
      - hub 

Kredyty: Containers are not linked with docker-compose version 2

+1

Działa również z wersją "2.1" –