Как использовать selenoid в docker-compose с другими сервисам

Всем привет! Поставил selenoid в docker-compose, и хочу использовать для selenium-requests.remote.
docker-compose.yml

version: '3.8'

services:
  django:
    build:
      context: ./app
      dockerfile: Dockerfile
    command: sh -c 'python manage.py runserver 0.0.0.0:8000'
    volumes:
      - ./app:/usr/src/app/
    ports:
      - 8000:8000
    env_file:
      - .env
  
  selenoid:
    image: "aerokube/selenoid"
    restart: always
    network_mode: bridge
    ports:
      - "4444:4444"
    volumes:
      - "./selenoid_config/:/etc/selenoid/"
      - "./selenoid_config/logs:/etc/selenoid/logs"
      - "/var/run/docker.sock:/var/run/docker.sock"

У selenoid настройки сети такие:

sudo docker network inspect bridge
[
    {
        "Name": "bridge",
        "Id": "378f31b7ad0193813c35db104e8922a094c8f2222ec4c84ecd7c14f1162a66a2",
        "Created": "2024-01-14T18:53:32.97767819+03:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "5cad007660beadb95d1a25df9ab2118265bc8979fc618b4f01dc47eb682cb755": {
                "Name": "trusting_visvesvaraya",
                "EndpointID": "6ad13b2cc780fae1ffca0e155d713c6b9b0bcab080467a1bee97ae463bd6b96c",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            },
            "a160e3ab9b2978ccd627ed5ea735891a0a49a958154b6024e22dc381047d90f8": {
                "Name": "cappa-selenoid-1",
                "EndpointID": "617d407956a980af21b5a590e353a9d4e3a261a11d4e6295d8f464c06555043b",
                "MacAddress": "02:42:ac:11:00:03",
                "IPv4Address": "172.17.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

Если подключаться не из контейнера, то всё работает

    firefox_options = FirefoxOptions()
    driver = Remote(
            command_executor='http://172.17.0.3:4444/wd/hub/',
            options=firefox_options,
            proxy_host='172.17.0.1'
        )

Но когда я внутри контейнера django, и делаю тоже самое - то не работает. Если заменить command_executor

    firefox_options = FirefoxOptions()
    driver = Remote(
            command_executor='http://172.17.0.1:4444/wd/hub/',
            options=firefox_options
        )

Тогда отрабатывает, но только метод drver.get(url), а метод driver.request('GET', url) нет.
Пробовал объединить в одну сеть, тогда можно обратится по host_name, но не может создаться сессия.
Может кто сталкивался?


Ответы (0 шт):