Как правильно связать автономный докер-контейнер селена с сетью хоста? - PullRequest
0 голосов
/ 28 октября 2018

Я запускаю два док-контейнера следующим образом:

один для селен / автономный хром

$ docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome

и основной контейнер использует хост-сеть для подключения к MySQL, работающему на localhost

$ docker run --rm --network="host" $(IMAGE_REPO)

но когда я пытался запустить драйвер в главном контейнере

from selenium import webdriver
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', 
                desired_capabilities=webdriver.DesiredCapabilities.CHROME)

Я получил сообщение об ошибке, либо

urllib3.exceptions.ProtocolError: ('Connection aborted.', BadStatusLine("''",))

или

urllib3.exceptions.ProtocolError: ('Connection aborted.', error(104, 'Connection reset by peer'))

я забыл что-нибудь / какие-либо параметры при попытке установить контейнеры? или значение, переданное command_executor, не должно быть 'http://127.0.0.1:4444/wd/hub'?

Я также пытался использовать Docker Bridge, но тогда я не представляю, как подключиться к серверу MySQL на localhost

SQLALCHEMY_URI = '{driver}://{user}:{pwd}@{host}/{db}?charset=utf8' \
.format(
    driver='mysql+pymysql',
    host='127.0.0.1:3306',
    user='root',
    pwd='0000',
    db='default'
)

1 Ответ

0 голосов
/ 11 февраля 2019

Обновите следующие библиотеки в вашем Dockerfile:

Установите версию библиотеки Selenium на 3.3.1 (selenium == 3.3.1).

т.е. используйте изображение Selenium, чьиверсия 3.3.1.

Используйте селен / узел-хром: 3.3.1 вместо селен / узел-хром: 3.141.59-золото

...