Skip to content

Commit a2205bc

Browse files
authored
Refactor selenium docker chrome with selenium hub (#3)
1 parent 63e5d08 commit a2205bc

File tree

2 files changed

+38
-4
lines changed

2 files changed

+38
-4
lines changed

Jenkinsfile

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,23 @@ pipeline {
1818
}
1919
stage('Run test') {
2020
steps {
21+
sh'''
22+
docker rm -f $(docker ps -a -q)
23+
'''
24+
sh'''
25+
docker network rm grid
26+
'''
2127
sh'''
2228
docker network create grid
2329
'''
2430
sh'''
25-
docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium --shm-size="2g" standalone-chrome:4.9.1-20230508
31+
docker pull seleniarm/hub:latest
32+
'''
33+
sh'''
34+
docker run -d -p 4442-4444:4442-4444 --net grid --name seleniarm-hub seleniarm/hub:latest
2635
'''
2736
sh'''
28-
docker run -d --net grid --name video -v ${PWD}/videos:/videos selenium/video:ffmpeg-4.3.1-20230421
37+
docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -v ${PWD}/config.toml:/opt/bin/config.toml -v ${PWD}/assets:/opt/selenium/assets -v /var/run/docker.sock:/var/run/docker.sock --name selenium-node-docker selenium/node-docker:latest
2938
'''
3039
sh'''
3140
docker build -t selenium-webdriver-cucumber-js-example-project-test --target test .
@@ -34,10 +43,10 @@ pipeline {
3443
docker run --rm -v ${PWD}:/usr/src/app/ --net grid --name selenium-webdriver-cucumber-js-example-project-test selenium-webdriver-cucumber-js-example-project-test
3544
'''
3645
sh'''
37-
docker stop video && docker rm video
46+
docker stop seleniarm-hub && docker rm seleniarm-hub
3847
'''
3948
sh'''
40-
docker stop selenium && docker rm selenium
49+
docker stop selenium-node-docker && docker rm selenium-node-docker
4150
'''
4251
sh'''
4352
docker network rm grid

onfig.toml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
[docker]
2+
# Configs have a mapping between the Docker image to use and the capabilities that need to be matched to
3+
# start a container with the given image.
4+
configs = [
5+
"seleniarm/node-firefox:latest", '{"browserName": "firefox"}',
6+
"seleniarm/node-chromium:latest", '{"browserName": "chrome"}',
7+
]
8+
9+
# URL for connecting to the docker daemon
10+
# Most simple approach, leave it as http://127.0.0.1:2375, and mount /var/run/docker.sock.
11+
# 127.0.0.1 is used because internally the container uses socat when /var/run/docker.sock is mounted
12+
# If var/run/docker.sock is not mounted:
13+
# Windows: make sure Docker Desktop exposes the daemon via tcp, and use http://host.docker.internal:2375.
14+
# macOS: install socat and run the following command, socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock,
15+
# then use http://host.docker.internal:2375.
16+
# Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue.
17+
url = "http://127.0.0.1:2375"
18+
# Docker image used for video recording
19+
video-image = "selenium/video:latest"
20+
21+
# Uncomment the following section if you are running the node on a separate VM
22+
# Fill out the placeholders with appropriate values
23+
#[server]
24+
#host = <ip-from-node-machine>
25+
#port = <port-from-node-machine>

0 commit comments

Comments
 (0)