Как использовать 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, но не может создаться сессия.
Может кто сталкивался?