Хром не найден внутри док-контейнера - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь запустить тест Selenium внутри док-контейнера, но получаю

Ошибка: ECONNREFUSED connect ECONNREFUSED 127.0.0.1:4444

докер-compose.yml

version: "3"
services:
  chrome:
    image: selenium/standalone-chrome-debug
    ports:
      - "4444:4444"
  webtest:
    build: .

testfile.js

var sw = require('selenium-webdriver');
let driver = new sw.Builder()
    .forBrowser('chrome')
    .usingServer('http://localhost:4444/wd/hub')
    .build();
driver.get('https://www.google.com/');

Когда я запускаю testfile.js вне контейнера, он работает. столкнувшись с проблемой запуска только внутри контейнера

1 Ответ

1 голос
/ 14 марта 2019

Вам необходимо заменить "http://localhost:4444/wd/hub" на" http://chrome:4444/wd/hub", и настроить сетевое соединение с докером. Внутри контейнера «localhost» не находится ваш хост-компьютер, поэтому порт недоступен и отказывается от соединения. Сопоставление портов применяется только между контейнером и хостом.

Хотя бы создайте связь между контейнерами (см. Ниже), лучше напрямую настраивайте сети (https://docs.docker.com/compose/networking/)

version: "3"
services:
  chrome:
    image: selenium/standalone-chrome-debug
    ports:
      - "4444:4444"
  webtest:
    build: .
    links:
     - chrome
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...