mirror of
https://github.com/vimagick/dockerfiles.git
synced 2025-01-26 05:27:31 +02:00
added selenoid
This commit is contained in:
parent
3d07dd0039
commit
8fa3f30613
@ -320,6 +320,13 @@ A collection of delicious docker recipes.
|
|||||||
- [x] node-chrome
|
- [x] node-chrome
|
||||||
- [x] node-firefox
|
- [x] node-firefox
|
||||||
- [x] standalone-firefox
|
- [x] standalone-firefox
|
||||||
|
- [x] aerokube
|
||||||
|
- [x] selenoid
|
||||||
|
- [x] video-recorder
|
||||||
|
- [x] chrome
|
||||||
|
- [x] firefox
|
||||||
|
- [x] vnc
|
||||||
|
- selenoid-ui
|
||||||
- [x] sentry
|
- [x] sentry
|
||||||
- [x] scrapinghub/splash
|
- [x] scrapinghub/splash
|
||||||
- [x] teamatldocker
|
- [x] teamatldocker
|
||||||
|
@ -4,5 +4,11 @@ ggr
|
|||||||
Go Grid Router (aka [Ggr][1]) is a lightweight active load balancer used to
|
Go Grid Router (aka [Ggr][1]) is a lightweight active load balancer used to
|
||||||
create scalable and highly-available Selenium clusters.
|
create scalable and highly-available Selenium clusters.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ curl -X POST http://localhost:4444/wd/hub
|
||||||
|
$ curl http://localhost:4444/ping
|
||||||
|
$ curl http://localhost:4444/quota
|
||||||
|
```
|
||||||
|
|
||||||
[1]: https://github.com/aerokube/ggr
|
[1]: https://github.com/aerokube/ggr
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
version: '3.5'
|
version: '3.7'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
hub:
|
hub:
|
||||||
image: selenium/hub:3.141.59-selenium
|
image: selenium/hub:3.141.59-selenium
|
||||||
ports:
|
ports:
|
||||||
@ -19,6 +21,7 @@ services:
|
|||||||
- node.role == manager
|
- node.role == manager
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
|
|
||||||
firefox:
|
firefox:
|
||||||
image: selenium/node-firefox:3.141.59-selenium
|
image: selenium/node-firefox:3.141.59-selenium
|
||||||
entrypoint: bash -c 'REMOTE_HOST=http://$$HOSTNAME:5555 /opt/bin/entry_point.sh'
|
entrypoint: bash -c 'REMOTE_HOST=http://$$HOSTNAME:5555 /opt/bin/entry_point.sh'
|
||||||
@ -39,6 +42,7 @@ services:
|
|||||||
- node.role == manager
|
- node.role == manager
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
|
|
||||||
chrome:
|
chrome:
|
||||||
image: selenium/node-chrome:3.141.59-selenium
|
image: selenium/node-chrome:3.141.59-selenium
|
||||||
entrypoint: bash -c 'REMOTE_HOST=http://$$HOSTNAME:5555 /opt/bin/entry_point.sh'
|
entrypoint: bash -c 'REMOTE_HOST=http://$$HOSTNAME:5555 /opt/bin/entry_point.sh'
|
||||||
@ -59,6 +63,7 @@ services:
|
|||||||
- node.role == worker
|
- node.role == worker
|
||||||
restart_policy:
|
restart_policy:
|
||||||
condition: on-failure
|
condition: on-failure
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
default:
|
default:
|
||||||
ipam:
|
ipam:
|
||||||
|
80
selenoid/README.md
Normal file
80
selenoid/README.md
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
selenoid
|
||||||
|
========
|
||||||
|
|
||||||
|
[Selenoid][1] is a Golang implementation of Selenium protocol using Docker to launch
|
||||||
|
browser sessions (so it is a replacement of Java-based Selenium server).
|
||||||
|
Currently it supports working with Docker directly (no support for Swarm or
|
||||||
|
Kubernetes).
|
||||||
|
|
||||||
|
|
||||||
|
Directory Tree
|
||||||
|
--------------
|
||||||
|
|
||||||
|
```
|
||||||
|
selenoid/
|
||||||
|
├── README.md
|
||||||
|
├── data/
|
||||||
|
│ ├── config/
|
||||||
|
│ │ └── browsers.json
|
||||||
|
│ ├── logs/
|
||||||
|
│ └── video/
|
||||||
|
└── docker-compose.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
Required Images
|
||||||
|
---------------
|
||||||
|
|
||||||
|
- aerokube/selenoid:latest-release
|
||||||
|
- aerokube/selenoid-ui:latest-release
|
||||||
|
- selenoid/video-recorder:latest-release
|
||||||
|
- selenoid/chrome:78.0
|
||||||
|
- selenoid/firefox:70.0
|
||||||
|
- selenoid/vnc:chrome_78.0
|
||||||
|
- selenoid/vnc:firefox_70.0
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"chrome": {
|
||||||
|
"default": "78.0",
|
||||||
|
"versions": {
|
||||||
|
"78.0": {
|
||||||
|
"image": "selenoid/vnc:chrome_78.0",
|
||||||
|
"port": "4444"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"firefox": {
|
||||||
|
"default": "70.0",
|
||||||
|
"versions": {
|
||||||
|
"70.0": {
|
||||||
|
"image": "selenoid/vnc:firefox_70.0",
|
||||||
|
"port": "4444"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```python
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
from selenium import webdriver
|
||||||
|
|
||||||
|
capabilities = {
|
||||||
|
"browserName": "chrome",
|
||||||
|
"version": "78.0",
|
||||||
|
"enableVNC": True,
|
||||||
|
"enableVideo": False
|
||||||
|
}
|
||||||
|
|
||||||
|
driver = webdriver.Remote(
|
||||||
|
command_executor="http://172.0.0.1:4444/wd/hub",
|
||||||
|
desired_capabilities=capabilities)
|
||||||
|
|
||||||
|
driver.maximize_window()
|
||||||
|
driver.get('https://www.google.com/')
|
||||||
|
driver.save_screenshot('google.png')
|
||||||
|
driver.close()
|
||||||
|
```
|
||||||
|
|
||||||
|
[1]: https://aerokube.com/selenoid/latest/
|
20
selenoid/data/config/browsers.json
Normal file
20
selenoid/data/config/browsers.json
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"chrome": {
|
||||||
|
"default": "78.0",
|
||||||
|
"versions": {
|
||||||
|
"78.0": {
|
||||||
|
"image": "selenoid/vnc:chrome_78.0",
|
||||||
|
"port": "4444"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"firefox": {
|
||||||
|
"default": "70.0",
|
||||||
|
"versions": {
|
||||||
|
"70.0": {
|
||||||
|
"image": "selenoid/vnc:firefox_70.0",
|
||||||
|
"port": "4444"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
0
selenoid/data/logs/.gitkeep
Normal file
0
selenoid/data/logs/.gitkeep
Normal file
0
selenoid/data/video/.gitkeep
Normal file
0
selenoid/data/video/.gitkeep
Normal file
33
selenoid/docker-compose.yml
Normal file
33
selenoid/docker-compose.yml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
version: "3.7"
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
selenoid:
|
||||||
|
image: aerokube/selenoid:latest-release
|
||||||
|
command: |
|
||||||
|
-conf config/browsers.json
|
||||||
|
-video-output-dir video
|
||||||
|
-log-output-dir logs
|
||||||
|
-limit 5
|
||||||
|
-timeout 1m
|
||||||
|
-max-timeout 30m
|
||||||
|
-container-network selenoid_default
|
||||||
|
ports:
|
||||||
|
- "4444:4444"
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- ./data:/opt/selenoid
|
||||||
|
environment:
|
||||||
|
- TZ=UTC
|
||||||
|
- OVERRIDE_VIDEO_OUTPUT_DIR=$PWD/data/video
|
||||||
|
working_dir: /opt/selenoid
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
selenoid-ui:
|
||||||
|
image: aerokube/selenoid-ui:latest-release
|
||||||
|
command: --selenoid-uri=http://selenoid:4444
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
depends_on:
|
||||||
|
- selenoid
|
||||||
|
restart: unless-stopped
|
Loading…
x
Reference in New Issue
Block a user