Как связать сервер селена через docker compose

Как связать сервер селена через докер с другим контейнером? Мой docker-compose.yml:

 version: '2'
    services:
        selenium:
            image: selenium/standalone-chrome
            ports:
                - "4444:4444"
        lamp:
            build: ./lamp
            ports:
                - "3306:3306"
                - "80:80"
            volumes:
                - /projects:/var/www/projects
            links:
                - selenium

потом

sudo docker exec -it composelamp_lamp_1 /bin/bash
root@68a87ec3325f:/# curl http://127.0.0.1:4444/wd/hub
curl: (7) Failed to connect to 127.0.0.1 port 4444: Connection refused

Что я делаю не так?


person coc28    schedule 19.09.2016    source источник


Ответы (2)


127.0.0.1 неправильно. Это разные контейнеры, поэтому хост не является локальным.

Попробуйте: http://selenium:4444/wd/hub

Имя службы добавляется в качестве псевдонима хоста для контейнера.

person dnephin    schedule 20.09.2016

Я не могу комментировать, поэтому пишу ответ:

Можете ли вы проверить, не используется ли порт 4444 другим приложением? Или может быть просто опубликовать другой порт. Попробуйте, например, что-то вроде:

ports:
    - "19900:4444"

а затем попробуйте подключиться к http://127.0.0.1:19900/wd/hub

Я надеюсь, что это помогает.

редактировать: также может быть, что ваше приложение не работает на вашем локальном хосте (127.0.0.1). В этом случае вы должны выяснить, на каком IP-адресе он работает.

person RichArt    schedule 19.09.2016
comment
Я пробовал: selenium: image: selenium/standalone-chrome порты: - 19900:4444. Затем на главной машине 127.0.0.1:19900/wd/hub работает нормально, но на контейнер лампы: root@c7e314041b14:/# netstat -tulpn // нет портов 4444 или 19900 | root@c7e314041b14:/# curl 127.0.0.1:19900/wd/hub | curl: (7) Не удалось подключиться к порту 127.0.0.1 19900: соединение отклонено - person coc28; 20.09.2016