From 368081095edf40f2b087ca8cfcf9d40151de8c80 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Tue, 13 Jul 2021 14:30:57 +0200 Subject: [PATCH] Remove /dev/shm from docs, defaulting to shm-size --- README.md | 62 +++++++++++++------------- docker-compose-v2.yml | 9 ++-- docker-compose-v3-full-grid-dev.yml | 6 +-- docker-compose-v3-full-grid-swarm.yml | 9 ++-- docker-compose-v3-full-grid.yml | 9 ++-- docker-compose-v3-swarm.yml | 9 ++-- docker-compose-v3-video.yml | 9 ++-- docker-compose-v3.yml | 9 ++-- tests/docker-compose-v3-test-video.yml | 3 +- 9 files changed, 52 insertions(+), 73 deletions(-) diff --git a/README.md b/README.md index c3581ab29..751be7d66 100644 --- a/README.md +++ b/README.md @@ -31,9 +31,7 @@ https://www.selenium.dev/support/ 1. Start a Docker container with Firefox ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618 -# OR -$ docker run -d -p 4444:4444 -p 7900:7900 -v /dev/shm:/dev/shm selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618 ``` 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 More details about visualising the container activity, check the [Debugging](#debugging) section. -:point_up: When executing `docker run` for an image that contains a browser please either mount - `-v /dev/shm:/dev/shm` or use the flag `--shm-size=2g` to use the host's shared memory. +:point_up: When executing `docker run` for an image that contains a browser please use +the flag `--shm-size=2g` to use the host's shared memory. :point_up: Always use a Docker image with a full tag to pin a specific browser and Grid version. See [Tagging Conventions](https://github.com/SeleniumHQ/docker-selenium/wiki/Tagging-Convention) for details. @@ -60,17 +58,17 @@ ___ ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/main/src/firefox/firefox_24x24.png) Firefox ``` bash -$ docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618 +$ docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618 ``` ![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/main/src/chrome/chrome_24x24.png) Chrome ``` bash -$ docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618 +$ docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618 ``` ![Edge](https://raw.githubusercontent.com/alrra/browser-logos/main/src/edge/edge_24x24.png) Microsoft Edge ``` bash -$ docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-edge:4.0.0-rc-1-prerelease-20210618 +$ docker run -d -p 4444:4444 --shm-size="2g" selenium/standalone-edge:4.0.0-rc-1-prerelease-20210618 ``` _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_ $ docker network create grid $ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.0.0-rc-1-prerelease-20210618 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ + --shm-size="2g" \ -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 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ + --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - -v /dev/shm:/dev/shm \ selenium/node-edge:4.0.0-rc-1-prerelease-20210618 $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ + --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ - -v /dev/shm:/dev/shm \ selenium/node-firefox:4.0.0-rc-1-prerelease-20210618 ``` @@ -123,34 +121,34 @@ $ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.0.0-rc Node Chrome - Machine/VM 2 ``` bash -$ docker run -d -p 5555:5555 +$ docker run -d -p 5555:5555 \ + --shm-size="2g" \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - -v /dev/shm:/dev/shm \ selenium/node-chrome:4.0.0-rc-1-prerelease-20210618 ``` Node Edge - Machine/VM 3 ``` bash -$ docker run -d -p 5555:5555 +$ docker run -d -p 5555:5555 \ + --shm-size="2g" \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - -v /dev/shm:/dev/shm \ selenium/node-edge:4.0.0-rc-1-prerelease-20210618 ``` Node Firefox - Machine/VM 4 ``` bash -$ docker run -d -p 5555:5555 +$ docker run -d -p 5555:5555 \ + --shm-size="2g" \ -e SE_EVENT_BUS_HOST= \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ -e SE_NODE_HOST= \ - -v /dev/shm:/dev/shm \ selenium/node-firefox:4.0.0-rc-1-prerelease-20210618 ``` @@ -209,7 +207,7 @@ This example shows how to start the containers manually: ``` bash $ docker network create grid -$ 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 +$ 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 $ docker run -d --net grid --name video -v /tmp/videos:/videos selenium/video:ffmpeg-4.3.1-20210618 # Run your tests $ docker stop video && docker rm video @@ -376,7 +374,7 @@ variables. Here is an example with the default values of these environment variables: ```bash -$ docker run -d --e SE_EVENT_BUS_HOST= -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 +$ docker run -d -e SE_EVENT_BUS_HOST= -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 ``` ### Setting Screen Resolution @@ -421,7 +419,7 @@ To avoid starting the server you can set the `START_XVFB` environment variable t (or any other value than `true`), for example: ``` bash -$ 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 +$ 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 ``` 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 \ --health-cmd='/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444' \ --health-interval=15s --health-timeout=30s --health-retries=5 \ selenium/hub:4.0.0-rc-1-prerelease-20210618 -$ 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 -$ 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 -$ 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 +$ docker run -d --net grid -e HUB_HOST=selenium-hub --shm-size="2g" selenium/node-chrome:4.0.0-rc-1-prerelease-20210618 +$ docker run -d --net grid -e HUB_HOST=selenium-hub --shm-size="2g" selenium/node-edge:4.0.0-rc-1-prerelease-20210618 +$ docker run -d --net grid -e HUB_HOST=selenium-hub --shm-size="2g" selenium/node-firefox:4.0.0-rc-1-prerelease-20210618 ``` **Note:** The `\` line delimiter won't work on Windows based terminals, try either `^` or a backtick. @@ -581,9 +579,9 @@ You can override it with the `VNC_PORT` environment variable in case you want to Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 5900:5900 -v /dev/shm:/dev/shm selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618 -$ docker run -d -p 4444:4444 -p 5901:5900 -v /dev/shm:/dev/shm selenium/standalone-edge:4.0.0-rc-1-prerelease-20210618 -$ docker run -d -p 4445:4444 -p 5902:5900 -v /dev/shm:/dev/shm selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618 +$ docker run -d -p 4444:4444 -p 5900:5900 --shm-size="2g" selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618 +$ docker run -d -p 4444:4444 -p 5901:5900 --shm-size="2g" selenium/standalone-edge:4.0.0-rc-1-prerelease-20210618 +$ docker run -d -p 4445:4444 -p 5902:5900 --shm-size="2g" selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618 ``` 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 Here is an example with the standalone images, the same concept applies to the node images. ``` bash -$ docker run -d -p 4444:4444 -p 7900:7900 -v /dev/shm:/dev/shm selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618 -$ docker run -d -p 4444:4444 -p 7901:7900 -v /dev/shm:/dev/shm selenium/standalone-edge:4.0.0-rc-1-prerelease-20210618 -$ docker run -d -p 4445:4444 -p 7902:7900 -v /dev/shm:/dev/shm selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618 +$ docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:4.0.0-rc-1-prerelease-20210618 +$ docker run -d -p 4444:4444 -p 7901:7900 --shm-size="2g" selenium/standalone-edge:4.0.0-rc-1-prerelease-20210618 +$ docker run -d -p 4445:4444 -p 7902:7900 --shm-size="2g" selenium/standalone-firefox:4.0.0-rc-1-prerelease-20210618 ``` Then, you would use in your browser: @@ -642,13 +640,13 @@ You can increase the log output by passing environment variable to the container SE_OPTS="--log-level FINE" ``` -### `-v /dev/shm:/dev/shm` or `--shm-size 2g` +### `--shm-size="2g"` -Why is `-v /dev/shm:/dev/shm` or `--shm-size 2g` necessary? +Why is `--shm-size 2g` necessary? > This is a known workaround to avoid the browser crashing inside a docker container, here are the documented issues for [Chrome](https://code.google.com/p/chromium/issues/detail?id=519952) and [Firefox](https://bugzilla.mozilla.org/show_bug.cgi?id=1338771#c10). The shm size of 2gb is arbitrary but known to work well, your specific use case might need a different value, it is recommended -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. +to tune this value according to your needs. ### Headless diff --git a/docker-compose-v2.yml b/docker-compose-v2.yml index dfb1d1d86..301de3f2d 100644 --- a/docker-compose-v2.yml +++ b/docker-compose-v2.yml @@ -5,8 +5,7 @@ version: '2' services: chrome: image: selenium/node-chrome:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-hub environment: @@ -18,8 +17,7 @@ services: edge: image: selenium/node-edge:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-hub environment: @@ -31,8 +29,7 @@ services: firefox: image: selenium/node-firefox:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-hub environment: diff --git a/docker-compose-v3-full-grid-dev.yml b/docker-compose-v3-full-grid-dev.yml index 468f0320f..cc2a595ad 100644 --- a/docker-compose-v3-full-grid-dev.yml +++ b/docker-compose-v3-full-grid-dev.yml @@ -82,9 +82,9 @@ services: chrome: image: selenium/node-chrome:4.0.0-rc-1-prerelease-20210618 + shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar - - /dev/shm:/dev/shm depends_on: - selenium-event-bus environment: @@ -96,9 +96,9 @@ services: edge: image: selenium/node-edge:4.0.0-rc-1-prerelease-20210618 + shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar - - /dev/shm:/dev/shm depends_on: - selenium-event-bus environment: @@ -110,9 +110,9 @@ services: firefox: image: selenium/node-firefox:4.0.0-rc-1-prerelease-20210618 + shm_size: 2gb volumes: - ./selenium_server_deploy.jar:/opt/selenium/selenium-server.jar - - /dev/shm:/dev/shm depends_on: - selenium-event-bus environment: diff --git a/docker-compose-v3-full-grid-swarm.yml b/docker-compose-v3-full-grid-swarm.yml index 9806f1b77..fc3f6aff9 100644 --- a/docker-compose-v3-full-grid-swarm.yml +++ b/docker-compose-v3-full-grid-swarm.yml @@ -8,8 +8,7 @@ version: '3.7' services: chrome: image: selenium/node-chrome:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub - SE_EVENT_BUS_PUBLISH_PORT=4442 @@ -20,8 +19,7 @@ services: edge: image: selenium/node-edge:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub - SE_EVENT_BUS_PUBLISH_PORT=4442 @@ -32,8 +30,7 @@ services: firefox: image: selenium/node-firefox:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub - SE_EVENT_BUS_PUBLISH_PORT=4442 diff --git a/docker-compose-v3-full-grid.yml b/docker-compose-v3-full-grid.yml index b1a9d22c1..d70529f59 100644 --- a/docker-compose-v3-full-grid.yml +++ b/docker-compose-v3-full-grid.yml @@ -72,8 +72,7 @@ services: chrome: image: selenium/node-chrome:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-event-bus environment: @@ -85,8 +84,7 @@ services: edge: image: selenium/node-edge:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-event-bus environment: @@ -98,8 +96,7 @@ services: firefox: image: selenium/node-firefox:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-event-bus environment: diff --git a/docker-compose-v3-swarm.yml b/docker-compose-v3-swarm.yml index 9806f1b77..fc3f6aff9 100644 --- a/docker-compose-v3-swarm.yml +++ b/docker-compose-v3-swarm.yml @@ -8,8 +8,7 @@ version: '3.7' services: chrome: image: selenium/node-chrome:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub - SE_EVENT_BUS_PUBLISH_PORT=4442 @@ -20,8 +19,7 @@ services: edge: image: selenium/node-edge:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub - SE_EVENT_BUS_PUBLISH_PORT=4442 @@ -32,8 +30,7 @@ services: firefox: image: selenium/node-firefox:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb environment: - SE_EVENT_BUS_HOST=selenium-hub - SE_EVENT_BUS_PUBLISH_PORT=4442 diff --git a/docker-compose-v3-video.yml b/docker-compose-v3-video.yml index 51fe7b764..aba5ccc4e 100644 --- a/docker-compose-v3-video.yml +++ b/docker-compose-v3-video.yml @@ -5,8 +5,7 @@ version: "3" services: chrome: image: selenium/node-chrome:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-hub environment: @@ -18,8 +17,7 @@ services: edge: image: selenium/node-edge:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-hub environment: @@ -31,8 +29,7 @@ services: firefox: image: selenium/node-firefox:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-hub environment: diff --git a/docker-compose-v3.yml b/docker-compose-v3.yml index 68e84f3f7..fd9b90d72 100644 --- a/docker-compose-v3.yml +++ b/docker-compose-v3.yml @@ -5,8 +5,7 @@ version: "3" services: chrome: image: selenium/node-chrome:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-hub environment: @@ -18,8 +17,7 @@ services: edge: image: selenium/node-edge:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-hub environment: @@ -31,8 +29,7 @@ services: firefox: image: selenium/node-firefox:4.0.0-rc-1-prerelease-20210618 - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-hub environment: diff --git a/tests/docker-compose-v3-test-video.yml b/tests/docker-compose-v3-test-video.yml index bab7d742b..dd8597749 100644 --- a/tests/docker-compose-v3-test-video.yml +++ b/tests/docker-compose-v3-test-video.yml @@ -5,8 +5,7 @@ version: "3" services: browser: image: selenium/node-${BROWSER}:${TAG:-test-video} - volumes: - - /dev/shm:/dev/shm + shm_size: 2gb depends_on: - selenium-hub environment: