@@ -31,9 +31,7 @@ https://www.selenium.dev/support/
31
31
1 . Start a Docker container with Firefox
32
32
33
33
``` bash
34
- $ docker run -d -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618
35
- # OR
36
- $ docker run -d -p 4444:4444 -p 7900:7900 -v /dev/shm:/dev/shm selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618
34
+ $ docker run -d -p 4444:4444 -p 7900:7900 --shm-size=" 2g" selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618
37
35
```
38
36
39
37
2 . Point your WebDriver tests to http://localhost:4444 *
@@ -46,8 +44,8 @@ $ docker run -d -p 4444:4444 -p 7900:7900 -v /dev/shm:/dev/shm selenium/standalo
46
44
47
45
More details about visualising the container activity, check the [ Debugging] ( #debugging ) section.
48
46
49
- :point_up : When executing ` docker run ` for an image that contains a browser please either mount
50
- ` -v /dev/shm:/dev/shm ` or use the flag ` --shm-size=2g ` to use the host's shared memory.
47
+ :point_up : When executing ` docker run ` for an image that contains a browser please use
48
+ the flag ` --shm-size=2g ` to use the host's shared memory.
51
49
52
50
:point_up : Always use a Docker image with a full tag to pin a specific browser and Grid version.
53
51
See [ Tagging Conventions] ( https://github.com/SeleniumHQ/docker-selenium/wiki/Tagging-Convention ) for details.
60
58
61
59
![ Firefox] ( https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png ) Firefox
62
60
``` bash
63
- $ docker run -d -p 4444:4444 -v /dev/ shm:/dev/shm selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618
61
+ $ docker run -d -p 4444:4444 -- shm-size= " 2g " selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618
64
62
```
65
63
66
64
![ Chrome] ( https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png ) Chrome
67
65
``` bash
68
- $ docker run -d -p 4444:4444 -v /dev/ shm:/dev/shm selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618
66
+ $ docker run -d -p 4444:4444 -- shm-size= " 2g " selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618
69
67
```
70
68
71
69
![ Edge] ( https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png ) Microsoft Edge
72
70
``` bash
73
- $ docker run -d -p 4444:4444 -v /dev/ shm:/dev/shm selenium/standalone-edge:4.0.0-rc-1-prerelease-20210618
71
+ $ docker run -d -p 4444:4444 -- shm-size= " 2g " selenium/standalone-edge:4.0.0-rc-1-prerelease-20210618
74
72
```
75
73
76
74
_ Note: Only one Standalone container can run on port_ ` 4444 ` _ at the same time._
@@ -89,19 +87,19 @@ A Docker [network](https://docs.docker.com/engine/reference/commandline/network_
89
87
$ docker network create grid
90
88
$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.0.0-rc-1-prerelease-20210618
91
89
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \
90
+ --shm-size=" 2g" \
92
91
-e SE_EVENT_BUS_PUBLISH_PORT=4442 \
93
92
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \
94
- -v /dev/shm:/dev/shm \
95
93
selenium/node-chrome:4.0.0-rc-1-prerelease-20210618
96
94
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \
95
+ --shm-size=" 2g" \
97
96
-e SE_EVENT_BUS_PUBLISH_PORT=4442 \
98
97
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \
99
- -v /dev/shm:/dev/shm \
100
98
selenium/node-edge:4.0.0-rc-1-prerelease-20210618
101
99
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \
100
+ --shm-size=" 2g" \
102
101
-e SE_EVENT_BUS_PUBLISH_PORT=4442 \
103
102
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \
104
- -v /dev/shm:/dev/shm \
105
103
selenium/node-firefox:4.0.0-rc-1-prerelease-20210618
106
104
```
107
105
@@ -123,34 +121,34 @@ $ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.0.0-rc
123
121
124
122
Node Chrome - Machine/VM 2
125
123
``` bash
126
- $ docker run -d -p 5555:5555
124
+ $ docker run -d -p 5555:5555 \
125
+ --shm-size=" 2g" \
127
126
-e SE_EVENT_BUS_HOST=< ip-from-machine-1> \
128
127
-e SE_EVENT_BUS_PUBLISH_PORT=4442 \
129
128
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \
130
129
-e SE_NODE_HOST=< ip-from-machine-2> \
131
- -v /dev/shm:/dev/shm \
132
130
selenium/node-chrome:4.0.0-rc-1-prerelease-20210618
133
131
```
134
132
135
133
Node Edge - Machine/VM 3
136
134
``` bash
137
- $ docker run -d -p 5555:5555
135
+ $ docker run -d -p 5555:5555 \
136
+ --shm-size=" 2g" \
138
137
-e SE_EVENT_BUS_HOST=< ip-from-machine-1> \
139
138
-e SE_EVENT_BUS_PUBLISH_PORT=4442 \
140
139
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \
141
140
-e SE_NODE_HOST=< ip-from-machine-3> \
142
- -v /dev/shm:/dev/shm \
143
141
selenium/node-edge:4.0.0-rc-1-prerelease-20210618
144
142
```
145
143
146
144
Node Firefox - Machine/VM 4
147
145
``` bash
148
- $ docker run -d -p 5555:5555
146
+ $ docker run -d -p 5555:5555 \
147
+ --shm-size=" 2g" \
149
148
-e SE_EVENT_BUS_HOST=< ip-from-machine-1> \
150
149
-e SE_EVENT_BUS_PUBLISH_PORT=4442 \
151
150
-e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \
152
151
-e SE_NODE_HOST=< ip-from-machine-4> \
153
- -v /dev/shm:/dev/shm \
154
152
selenium/node-firefox:4.0.0-rc-1-prerelease-20210618
155
153
```
156
154
@@ -209,7 +207,7 @@ This example shows how to start the containers manually:
209
207
210
208
``` bash
211
209
$ docker network create grid
212
- $ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium -v /dev/ shm:/dev/shm selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618
210
+ $ docker run -d -p 4444:4444 -p 6900:5900 --net grid --name selenium -- shm-size= " 2g " selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618
213
211
$ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-4.3.1-20210618
214
212
# Run your tests
215
213
$ docker stop video && docker rm video
@@ -376,7 +374,7 @@ variables.
376
374
Here is an example with the default values of these environment variables:
377
375
378
376
``` bash
379
- $ docker run -d -- e SE_EVENT_BUS_HOST=< event_bus_ip| event_bus_name> -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -v /dev/ shm:/dev/shm selenium/node-chrome:4.0.0-rc-1-prerelease-20210618
377
+ $ docker run -d -e SE_EVENT_BUS_HOST=< event_bus_ip| event_bus_name> -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 -- shm-size= " 2g " selenium/node-chrome:4.0.0-rc-1-prerelease-20210618
380
378
```
381
379
382
380
### Setting Screen Resolution
@@ -421,7 +419,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t
421
419
(or any other value than ` true ` ), for example:
422
420
423
421
``` bash
424
- $ 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 -e START_XVFB=false -v /dev/ shm:/dev/shm selenium/node-chrome
422
+ $ 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 -e START_XVFB=false -- shm-size= " 2g " selenium/node-chrome
425
423
```
426
424
427
425
For more information, see this GitHub [ issue] ( https://github.com/SeleniumHQ/docker-selenium/issues/567 ) .
@@ -513,9 +511,9 @@ $ docker run -d -p 4444:4444 --net grid --name selenium-hub \
513
511
--health-cmd=' /opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \
514
512
--health-interval=15s --health-timeout=30s --health-retries=5 \
515
513
selenium/hub:4.0.0-rc-1-prerelease-20210618
516
- $ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/ shm:/dev/shm selenium/node-chrome:4.0.0-rc-1-prerelease-20210618
517
- $ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/ shm:/dev/shm selenium/node-edge:4.0.0-rc-1-prerelease-20210618
518
- $ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/ shm:/dev/shm selenium/node-firefox:4.0.0-rc-1-prerelease-20210618
514
+ $ docker run -d --net grid -e HUB_HOST=selenium-hub -- shm-size= " 2g " selenium/node-chrome:4.0.0-rc-1-prerelease-20210618
515
+ $ docker run -d --net grid -e HUB_HOST=selenium-hub -- shm-size= " 2g " selenium/node-edge:4.0.0-rc-1-prerelease-20210618
516
+ $ docker run -d --net grid -e HUB_HOST=selenium-hub -- shm-size= " 2g " selenium/node-firefox:4.0.0-rc-1-prerelease-20210618
519
517
```
520
518
** Note:** The ` \ ` line delimiter won't work on Windows based terminals, try either ` ^ ` or a backtick.
521
519
@@ -581,9 +579,9 @@ You can override it with the `VNC_PORT` environment variable in case you want to
581
579
582
580
Here is an example with the standalone images, the same concept applies to the node images.
583
581
``` bash
584
- $ docker run -d -p 4444:4444 -p 5900:5900 -v /dev/ shm:/dev/shm selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618
585
- $ docker run -d -p 4444:4444 -p 5901:5900 -v /dev/ shm:/dev/shm selenium/standalone-edge:4.0.0-rc-1-prerelease-20210618
586
- $ docker run -d -p 4445:4444 -p 5902:5900 -v /dev/ shm:/dev/shm selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618
582
+ $ docker run -d -p 4444:4444 -p 5900:5900 -- shm-size= " 2g " selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618
583
+ $ docker run -d -p 4444:4444 -p 5901:5900 -- shm-size= " 2g " selenium/standalone-edge:4.0.0-rc-1-prerelease-20210618
584
+ $ docker run -d -p 4445:4444 -p 5902:5900 -- shm-size= " 2g " selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618
587
585
```
588
586
589
587
Then, you would use in your VNC client:
@@ -616,9 +614,9 @@ Similarly to the previous section, feel free to map port 7900 to any free extern
616
614
617
615
Here is an example with the standalone images, the same concept applies to the node images.
618
616
``` bash
619
- $ docker run -d -p 4444:4444 -p 7900:7900 -v /dev/ shm:/dev/shm selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618
620
- $ docker run -d -p 4444:4444 -p 7901:7900 -v /dev/ shm:/dev/shm selenium/standalone-edge:4.0.0-rc-1-prerelease-20210618
621
- $ docker run -d -p 4445:4444 -p 7902:7900 -v /dev/ shm:/dev/shm selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618
617
+ $ docker run -d -p 4444:4444 -p 7900:7900 -- shm-size= " 2g " selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618
618
+ $ docker run -d -p 4444:4444 -p 7901:7900 -- shm-size= " 2g " selenium/standalone-edge:4.0.0-rc-1-prerelease-20210618
619
+ $ docker run -d -p 4445:4444 -p 7902:7900 -- shm-size= " 2g " selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618
622
620
```
623
621
624
622
Then, you would use in your browser:
@@ -642,13 +640,13 @@ You can increase the log output by passing environment variable to the container
642
640
SE_OPTS="--log-level FINE"
643
641
```
644
642
645
- ### ` -v /dev/shm:/dev/shm ` or ` -- shm-size 2g `
643
+ ### ` -- shm-size="2g" `
646
644
647
- Why is ` -v /dev/shm:/dev/shm ` or ` - -shm-size 2g` necessary?
645
+ Why is ` --shm-size 2g ` necessary?
648
646
> This is a known workaround to avoid the browser crashing inside a docker container, here are the documented issues for
649
647
[ Chrome] ( https://code.google.com/p/chromium/issues/detail?id=519952 ) and [ Firefox] ( https://bugzilla.mozilla.org/show_bug.cgi?id=1338771#c10 ) .
650
648
The shm size of 2gb is arbitrary but known to work well, your specific use case might need a different value, it is recommended
651
- to tune this value according to your needs. Along the examples ` -v /dev/shm:/dev/shm ` will be used, but both are known to work.
649
+ to tune this value according to your needs.
652
650
653
651
654
652
### Headless
0 commit comments