{"id":13587970,"url":"https://github.com/elgalu/docker-selenium","last_synced_at":"2025-09-28T20:30:41.585Z","repository":{"id":18461062,"uuid":"21655399","full_name":"elgalu/docker-selenium","owner":"elgalu","description":"[NOT MAINTAINED] Please use \u003chttps://github.com/SeleniumHQ/docker-selenium\u003e","archived":true,"fork":false,"pushed_at":"2021-06-30T16:08:37.000Z","size":13274,"stargazers_count":1426,"open_issues_count":35,"forks_count":345,"subscribers_count":82,"default_branch":"master","last_synced_at":"2024-01-25T05:11:33.199Z","etag":null,"topics":["chrome","docker-selenium","firefox","headless","selenium-grid","selenium-server","video-recording","vnc"],"latest_commit_sha":null,"homepage":"https://github.com/SeleniumHQ/docker-selenium","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elgalu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null},"funding":{"github":["elgalu"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://www.blockchain.com/btc/address/1PNfExdfu7Kc2n32swKGhqXzzpPd2iXhXB"]}},"created_at":"2014-07-09T14:32:21.000Z","updated_at":"2024-01-24T12:38:00.000Z","dependencies_parsed_at":"2022-09-11T20:20:21.363Z","dependency_job_id":null,"html_url":"https://github.com/elgalu/docker-selenium","commit_stats":null,"previous_names":[],"tags_count":353,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elgalu%2Fdocker-selenium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elgalu%2Fdocker-selenium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elgalu%2Fdocker-selenium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elgalu%2Fdocker-selenium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elgalu","download_url":"https://codeload.github.com/elgalu/docker-selenium/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219873869,"owners_count":16554521,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrome","docker-selenium","firefox","headless","selenium-grid","selenium-server","video-recording","vnc"],"created_at":"2024-08-01T15:06:26.863Z","updated_at":"2025-09-28T20:30:36.184Z","avatar_url":"https://github.com/elgalu.png","language":"Shell","readme":"# [NOT MAINTAINED] Please use \u003chttps://github.com/SeleniumHQ/docker-selenium\u003e\n\n\n\u003cimg id=\"header\" width=\"700\" src=\"./images/icons/logo_wide.jpg\" /\u003e\n\n# Selenium in Docker with Chrome and Firefox\n\n[![Build Status](https://travis-ci.org/elgalu/docker-selenium.svg?branch=master)](https://travis-ci.org/elgalu/docker-selenium \"Travis CI\")\n[![Docker Pulls](https://img.shields.io/docker/pulls/elgalu/selenium.svg)](https://hub.docker.com/r/elgalu/selenium/tags/)\n[![Docker](https://images.microbadger.com/badges/version/elgalu/selenium.svg)](https://microbadger.com/images/elgalu/selenium \"Docker Badge\")\n\n* selenium server grid with 2 nodes (chrome \u0026 firefox)\n* mp4 video recording\n* VNC access (useful for debugging the container)\n* google-chrome-stable\n* google-chrome-beta: no longer provided but [can still be found here][2.47.1m]\n* google-chrome-unstable: no longer provided but [can still be found here][2.47.1m]\n* firefox stable latest\n* firefox stable [last 18 versions can be found here][2.47.1m]\n* fluxbox (openbox window manager can still be found [here](https://github.com/elgalu/docker-selenium/releases/tag/3.0.1c))\n\nSelenium 3  `docker run ... elgalu/selenium:latest`\n![docker-selenium-grid](./images/grid3_console.png)\n\nSelenium 2  `docker run ... elgalu/selenium:2` **no longer maintained**\n\n### Purpose\nThe purpose of this project is to have [Selenium][] running as simple and as fast as possible.\n\nThis purpose is augmented by [Zalenium][] a project which uses this one to provide docker-selenium(s) on-demand.\n\n[Zalenium][] also forwards tests to a Cloud Provider (Sauce Labs, BrowserStack, TestingBot \u0026 LambdaTest) when necessary.\n\n\u003ch2 id=\"official\"\u003eOfficial repo\u003c/h2\u003e\n\nNote [SeleniumHQ/docker-selenium](https://github.com/SeleniumHQ/docker-selenium) and this one share the same purpose however both projects have diverged considerably in the last two years, some major differences are:\n\n* both browsers and also the grid are on the same container in this repo\n* support for [video recording](./docs/videos.md)\n* process manager: this image uses [supervisord](http://supervisord.org) while the official [uses bash](https://github.com/SeleniumHQ/docker-selenium/blob/master/StandaloneChromeDebug/entry_point.sh)\n\nEven though both projects share the same purpose is good to have alternatives, see also for example [docker-alpine-selenium](https://github.com/SUNx2YCH/docker-alpine-selenium). Letting more than 1 docker-selenium project grow to be able to learn from each other's success or failures ultimately impacts the final users positively. This doesn't discard that at some point all selenium maintainers will sit together a sprint to coordinate some major changes and cleanup open issues and perhaps we might merge N similar projects in the future.\n\n### Statistics\n[![ga-datastudio-docker-selenium](./images/ga-datastudio-docker-selenium.png)](https://datastudio.google.com/open/0B3GcHpfNB6-FRDd3RWo1ZWh4N3M \"Docker-Selenium usage stats v1\")\n\n### Alternatives\nIf you don't require video recording we suggest to use either [Google Chrome in headless mode](https://chromium.googlesource.com/chromium/src/+/master/headless/README.md) or [Firefox in headless mode](https://developer.mozilla.org/en-US/Firefox/Headless_mode).\n\nWe also recommend avoiding [PhantomJS](https://github.com/ariya/phantomjs) as maintenance was stopped after Chrome \u0026 Firefox headless became available.\n\nYou can also use a paid service like [Sauce Labs][sauce], [BrowserStack] or [LambdaTest][], note they offer free open source accounts and straightforward [integration with Travis CI](https://docs.travis-ci.com/user/sauce-connect/).\n\n### Requisites\nThis project is normally tested in the last version of Docker and docker-compose and also in the release candidates.\nTo figure out the currently used specific versions it surely works on,\nsee file [.travis.yml](./.travis.yml) example values:\n\n    docker --version         #=\u003e 17.09.0-ce\n    docker-compose --version #=\u003e 1.16.1\n\nIf you need to use docker-machine to run docker\n(like for example on a Mac before the Docker native version 1.12),\nyou also need to install VirtualBox and then run these commands to get started:\n\n\n```sh\ndocker-machine create --driver virtualbox default\neval \"$(docker-machine env default)\"\n```\n\nYou will need to run the second `eval` command for every new terminal window.\n\n### Usage\n\n\u003ch4 id=\"run\"\u003e\u003cimg width=\"24\" src=\"./images/icons/logo.png\" /\u003e Run\u003c/h4\u003e\n\n1. Pull the image and run the container\n\n        docker pull elgalu/selenium #upgrades to latest if a newer version is available\n\n        docker run -d --name=grid -p 4444:24444 -p 5900:25900 \\\n            -e TZ=\"US/Pacific\" -v /dev/shm:/dev/shm --privileged elgalu/selenium\n\n2. Wait until the grid starts properly before starting the tests _(Optional but recommended)_\n\n        docker exec grid wait_all_done 30s\n        # Or if docker exec is not available (eg. circleci)\n        wget --retry-connrefused --no-check-certificate -T 30  http://localhost:4444/grid/console -O /dev/null\n\nAfter this, [Selenium][] will be up and ready to accept clients at `http://localhost:4444/wd/hub`. The grid's available browsers can be viewed by opening the console at `http://localhost:4444/grid/console`.\nIf you are using Mac (OSX) or [Microsoft Windows](https://docs.docker.com/engine/installation/windows/) `localhost` won't work unless you are in Docker Beta (version \u003e= 1.12) If you are using Docker version \u003c= 1.11 please find out the correct IP through `docker-machine ip default`.\n\n**Notes:**\n * The new default `VNC_PASSWORD=no` will make it VNC passwordless accessible.\n * Once this [docker feature](https://github.com/docker/docker/pull/22719) is in place `wait_all_done` won't be necessary anymore.\n\n#### Stop\nShutdown gracefully\n\n    docker exec grid stop\n    docker stop grid\n\nShutdown immediately, no mercy\n\n    docker rm -vf grid\n\n### Docker Compose\nSee [docker-compose](./docs/docker-compose.md)\n\n### Jenkins\nSee [jenkins](./docs/jenkins.md)\n\n### Parallel\nWe now have a better suited product for this use case, is called [Zalenium][]\n\nThis image is designed to run one test on each docker container but if you still want to run multiple tests in parallel you can still do so with [Zalenium][]\n\nIf you want to limit yourself to this project, you still can. There are some ways to do it:\n\n1. The recommended way is via [docker-compose](./docs/docker-compose.md) and you should replace `mock` with your web service under test within the [docker-compose-tests.yml][] file.\n\n        docker-compose -f docker-compose-tests.yml -p grid up --force-recreate\n        docker-compose -f docker-compose-tests.yml -p grid scale mock=1 hub=1 chrome=3 firefox=3\n\n1. The _(not recommended)_ way is by increasing `MAX_INSTANCES` and `MAX_SESSIONS` which now [defaults](https://github.com/elgalu/docker-selenium/blob/2.53.1a/Dockerfile#L967) to 1.\n\n        docker run -d --name=grid -p 4444:24444 -p 5900:25900 \\\n            -v /dev/shm:/dev/shm --privileged \\\n            -e MAX_INSTANCES=20 -e MAX_SESSIONS=20 \\\n            elgalu/selenium\n\nThe drawback is that all tests will run on the same desktop meaning the video recording will only capture the browser in the foreground but it's in the roadmap to make all this transparent, see issues [#78](https://github.com/elgalu/docker-selenium/issues/78) and [#77](https://github.com/elgalu/docker-selenium/issues/77).\n\nAnother problem with increasing `MAX_INSTANCES` \u0026 `MAX_SESSIONS` is focus issues. So in this case is better scale up/down via [docker-compose](./docs/docker-compose.md).\n\n### OSX\nIf you are in Mac, you need to get the correct IP of the docker machine. One of these two commands should work to get it:\n\n    docker-machine ip default\n\nor former:\n\n    boot2docker ip\n\n### Screen size\nYou can set a custom screen size at docker run time by providing `SCREEN_WIDTH` and `SCREEN_HEIGHT` environment variables:\n\n    docker pull elgalu/selenium\n\n    docker run -d --name=grid -p 4444:24444 -p 5900:25900 \\\n      -v /dev/shm:/dev/shm --privileged \\\n      -e SCREEN_WIDTH=1920 -e SCREEN_HEIGHT=1480 \\\n      elgalu/selenium\n\n    docker exec grid wait_all_done 10s\n\n    open vnc://:hola@localhost:5900\n\n### TimeZone\nYou can control and modify the timezone on a container by using the [TZ](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) environment variable through the `docker run` command, e.g. by adding `-e TZ=\"US/Pacific\"`\n\n    docker run --rm -ti --name=grid -p 4444:24444 -p 5900:25900 \\\n        -e TZ=\"US/Pacific\" \\\n        -v /dev/shm:/dev/shm --privileged elgalu/selenium\n\nExamples:\n\n    docker run ... -e TZ=\"US/Pacific\" ...\n    docker exec grid date\n    #=\u003e Fri May 20 06:04:58 PDT 2016\n\n    docker run ... -e TZ=\"America/Argentina/Buenos_Aires\" ...\n    docker exec grid date\n    #=\u003e Fri May 20 10:04:58 ART 2016\n\n    docker run ... -e TZ=\"Europe/Berlin\" ...\n    docker exec grid date\n    #=\u003e Fri May 20 15:04:58 CEST 2016\n\n### Chrome flavor\n\nThis feature was available in previous versions, please go to [2.47.1m] to use it.\n\nTo configure which Chrome flavor you want to use (stable, beta, unstable), just pass `-e CHROME_FLAVOR=beta` to `docker run`. Default is `stable`.\n\n### Firefox version\n\nThis feature was available in previous versions, please go to [2.47.1m] to use it.\nTo configure which Firefox version to use, first check available versions in the [CHANGELOG](./CHANGELOG.md). Then pass `-e FIREFOX_VERSION=38.0.6` to `docker run`. Default is the latest number of the available list.\n\n\u003ch3 id=\"video\"\u003eRecord Videos\u003c/h3\u003e\n\nStep by step guide at [docs/videos.md](./docs/videos.md)\n\nIf you create the container with `-e VIDEO=true` it will start recording a video through the vnc connection run upon start.\nIt is recommended to create first a local folder `videos` in your current directory, and mount the videos directory for\nan easy transfer with `-v $(pwd)/videos:/videos`.\n\nOnce your tests are done you can either manually stop the recording via `docker exec grid /bin-utils/stop-video` where\n*grid* is just the arbitrary container chosen name in `docker run` command. Or simply stop the container and that will stop the video recording automatically.\n\nRelevant up-to-date environment variables to customize it are at the Dockerfile, below a possibly outdated list of settings:\n\n    FFMPEG_FRAME_RATE=10\n    FFMPEG_CODEC_ARGS=\"-crf 0 -preset ultrafast -qp 0 -pix_fmt yuv420p\"\n    FFMPEG_FINAL_CRF=0\n    FFMPEG_DRAW_MOUSE=1\n    VIDEO_TMP_FILE_EXTENSION=\"mkv\"\n    VIDEO_FILE_EXTENSION=\"mp4\"\n    MP4_INTERLEAVES_MEDIA_DATA_CHUNKS_SECS=\"500\"\n    VIDEO_FILE_NAME=\"test\"\n\nIt is important to note that `ffmpeg` video recording takes an important amount of CPU usage, even more when a well compressed format like *mp4* is selected.\n\n### VNC\n\nWhen you don't specify a VNC password, the new default `VNC_PASSWORD=no` will make it VNC passwordless accessible.\n\n### noVNC\n\nDisabled by default, [noVNC](https://github.com/kanaka/noVNC) provides a browser VNC client so you don't need to install a vnc viewer if you choose so. *Note:* we were using guacamole before.\n\nSafari Browser already comes with a built-in vnc viewer so this feature is overkill and is disabled by default, just navigate to vnc://localhost:5900 in your Safari browser.\n\nYou need to pass the environment variable `-e NOVNC=true` in order to start the noVNC service and you will be able to open a browser at [localhost:6080](http://localhost:6080)\n\n    docker run --rm -ti --name=grid -p 4444:24444 -p 5900:25900 \\\n      -v /dev/shm:/dev/shm --privileged -p 6080:26080 -e NOVNC=true \\\n      elgalu/selenium\n\nYou can provide additional [NoVNC options](https://github.com/elgalu/noVNC/blob/dosel/app/ui.js#L156) such as `?view_only=false` to allow you to interact with the virtual desktop which now is read-only by default so you don't mess with the tests accidentally.\n\nIf the VNC password was randomly generated find out with\n\n    docker exec grid wait_all_done 30s\n    #=\u003e ... a VNC password was generated for you: ooGhai0aesaesh\n\n## Issues with Chrome\n\n### Chrome crashed\n\nIf your tests crashes in Chrome you may need to increase shm size or simply start your container by sharing `-v /dev/shm:/dev/shm --privileged` or, alternatively, `-v /dev/shm:/dev/shm --privileged`\n\n    docker run ... -v /dev/shm:/dev/shm --privileged ...\n\n### Firefox crashed\n\nSame as Chrome, people have [reported](https://goo.gl/5UzpDq) the shm fix might also be necessary for Firefox.\n\n### Chrome not reachable or timeout after 60 secs\nIn CentOS and apparently since docker 1.10.0 is necessary to disable [sandbox mode](http://www.chromium.org/developers/design-documents/sandbox) through [--no-sandbox](http://peter.sh/experiments/chromium-command-line-switches/#no-sandbox) example client implementation.\n\nThe error comes along with this message while starting Chrome:\n\n\u003e Failed to move to new namespace: PID namespaces supported. Network namespace supported, but failed: errno = Operation not permitted\n\n#### No Sandbox\n\n    ChromeOptions options = new ChromeOptions();\n    options.addArguments(\"--no-sandbox\");\n\nIn Protrator\n\n    capabilities: {\n      browserName: 'chrome',\n      chromeOptions: {\n        args: ['--no-sandbox'],\n      },\n    },\n\nHowever this is now the default of this image, see `CHROME_ARGS=\"--no-sandbox\"` in the Dockerfile so don't be surprised to see the \"Stability and security will suffer\" banner when opening Chrome inside the container.\n\n## Cloud Testing Platforms\nWe now have a better suited product for this use case, is called [Zalenium][]\n\n## Additional Uses\n\n### Using Xephyr to redirect X to the docker host\nNote the below method gives full access to the docker container to the host machine.\n\nHost machine, terminal 1:\n\n    sudo apt-get install xserver-xephyr\n    export XE_DISP_NUM=12 SCREEN_WIDTH=2000 SCREEN_HEIGHT=1500\n    Xephyr -ac -br -noreset -resizeable \\\n        -screen ${SCREEN_WIDTH}x${SCREEN_HEIGHT} :${XE_DISP_NUM}\n\nHost machine, terminal 2:\n\n    docker run --rm --name=ch -p=4444:24444 \\\n      -v /dev/shm:/dev/shm --privileged \\\n      -e SCREEN_WIDTH -e SCREEN_HEIGHT -e XE_DISP_NUM \\\n      -v /tmp/.X11-unix/X${XE_DISP_NUM}:/tmp/.X11-unix/X${XE_DISP_NUM} \\\n      elgalu/selenium\n3\nNow when you run your tests instead of connecting. If docker run fails try `xhost +`\n\n## Step by step build\n\n### Build this image\nIf you git clone this repo locally, i.e. `git clone` it and `cd` into where the Dockerfile is, you can:\n\n    docker build -t selenium .\n\n### Use this image\n\n#### e.g. Spawn a container for Chrome testing:\n\n    CH=$(docker run --rm --name=CH -p=127.0.0.1::24444 -p=127.0.0.1::25900 \\\n        -v /e2e/uploads:/e2e/uploads selenium)\n\n*Note:* `-v /e2e/uploads:/e2e/uploads` is optional in case you are testing browser uploads on your WebApp, you'll probably need to share a directory for this.\n\nThe `127.0.0.1::` part is to avoid binding to all network interfaces, most of the time you don't need to expose the docker container like that so just *localhost* for now.\n\nI like to remove the containers after each e2e test with `--rm` since this docker container is not meant to preserve state, spawning a new one is less than 3 seconds. You need to think of your docker container as processes, not as running virtual machines in case you are familiar with vagrant.\n\nA dynamic port will be bound to the container ones, i.e.\n\n    # Obtain the selenium port you'll connect to:\n    docker port $CH 4444\n    #=\u003e 127.0.0.1:49155\n\n    # Obtain the VNC server port in case you want to look around\n    docker port $CH 25900\n    #=\u003e 127.0.0.1:49160\n\nIn case you have RealVNC binary `vnc` in your path, you can always take a look, view only to avoid messing around your tests with an unintended mouse click or keyboard.\n\n    ./bin/vncview.sh 127.0.0.1:49160\n\n#### e.g. Spawn a container for Firefox testing:\n\nThis command line is the same as for Chrome, remember that the selenium running container is able to launch either Chrome or Firefox, the idea around having 2 separate containers, one for each browser is for convenience, plus avoid certain `:focus` issues your WebApp may encounter during e2e automation.\n\n    FF=$(docker run --rm --name=ff -p=127.0.0.1::24444 -p=127.0.0.1::25900 \\\n        -v /e2e/uploads:/e2e/uploads selenium)\n\n#### How to get docker internal IP through logs\n\n    CONTAINER_IP=$(docker logs sele10 2\u003e\u00261 | grep \"Container docker internal IP: \" | sed -e 's/.*IP: //' -e 's/\u003c.*$//')\n    echo ${CONTAINER_IP} #=\u003e 172.17.0.34\n\n#### Look around\n\n    docker images\n    #=\u003e\n\n    REPOSITORY  TAG              IMAGE ID      CREATED             SIZE\n    selenium    latest           a13d4195fc1f  About an hour ago   2.927 GB\n    ubuntu      xenial-20160525  2fa927b5cdd3  4 weeks ago         122 MB\n\n### DNS\n\n#### How to share the host DNS\n\nBy default `docker run` sets the DNS to Google ones *8.8.8.8 and 8.8.4.4* however you may need to use your own.\n\nFirst attempt is to use `--dns` option, e.g.\n\n    docker run --dns=1.1.1.1 --dns=1.1.1.2 \u003cargs...\u003e\n\nHowever this may not work for you and simply want to share the same DNS name resolution than the docker host machine, in which case you should use `--net=host` along with `--pid=host`\n\n    docker run --net=host --pid=host \u003cargs...\u003e\n\nSo `--pid=host` is included to avoid https://github.com/docker/docker/issues/5899 `sudo: unable to send audit message: Operation not permitted`\n\n##### Pid\nFull example using `--net=host` and `--pid=host` but for this to work in OSX you need the latest docker mac package, upgrade if you haven't done so in the last month.\n\n    docker run -d --name=grid --net=host --pid=host \\\n      -v /dev/shm:/dev/shm --privileged -e SELENIUM_HUB_PORT=4444 \\\n      elgalu/selenium\n    docker exec grid wait_all_done 30s\n    ./test/python_test.py\n\n#### DNS example\n\n    docker run -d --net=host --pid=host --name=grid -v /dev/shm:/dev/shm --privileged elgalu/selenium\n    docker exec grid wait_all_done 30s\n\n## Who is using docker-selenium?\n\n* [Zalando](https://tech.zalando.com/blog/)\n* [Shoov](http://www.gizra.com/content/phantomjs-chrome-docker-selenium-standalone/)\n* [smaato](http://blog.smaato.com/automated-end-to-end-testing-with-protractor-docker-jenkins)\n* [Algolia](https://github.com/algolia/instantsearch.js/#functional-tests)\n* [Nvidia](https://twitter.com/nvidia)\n* And many more! Please ping @elgalu to add you here.\n\n## Troubleshooting\n\nAll output is sent to stdout so it can be inspected by running:\n\n``` bash\n$ docker logs -f \u003ccontainer-id|container-name\u003e\n```\n\nPowered by Supervisor, the container leaves many logs;\n\n    /var/log/cont/docker-selenium-status.log\n    /var/log/cont/selenium-hub-stderr.log\n    /var/log/cont/selenium-hub-stdout.log\n    /var/log/cont/selenium-node-chrome-stderr.log\n    /var/log/cont/selenium-node-chrome-stdout.log\n    /var/log/cont/selenium-node-firefox-stderr.log\n    /var/log/cont/selenium-node-firefox-stdout.log\n    /var/log/cont/supervisord.log\n    /var/log/cont/video-rec-stderr.log\n    /var/log/cont/video-rec-stdout.log\n    /var/log/cont/vnc-stderr.log\n    /var/log/cont/vnc-stdout.log\n    /var/log/cont/xmanager-stderr.log\n    /var/log/cont/xmanager-stdout.log\n    /var/log/cont/xterm-stderr.log\n    /var/log/cont/xterm-stdout.log\n    /var/log/cont/xvfb-stderr.log\n    /var/log/cont/xvfb-stdout.log\n\n## Changelog\nSee [CHANGELOG.md](./CHANGELOG.md)\n\nThe sha256 digests are generated after pushing the image to the registry therefore the last version of this docker-selenium will always have digest TBD (to be determined) but will be updated manually at [releases][]\n\nThe image ids also change after scm-source.json has being updated which triggers a cyclic problem so value TBD will be set there and updated in the [releases][] page by navigating into any release tag.\n\nHow to get container versions\n\n    docker exec grid versions\n\n## Security\nSee [SECURITY.md](./SECURITY.md)\n\n## License\nSee [LICENSE.md](./LICENSE.md)\n\n\u003c!-- links --\u003e\n[2.47.1m]: https://github.com/elgalu/docker-selenium/releases/tag/2.47.1m\n[Selenium]: https://github.com/SeleniumHQ/selenium\n[sauce]: https://saucelabs.com/selenium/selenium-grid\n[BrowserStack]: https://www.browserstack.com/automate\n[LambdaTest]: https://www.lambdatest.com/selenium-automation\n[xvfb-electron]: http://electron.atom.io/docs/tutorial/testing-on-headless-ci\n[docker-compose.yml]: ./docker-compose.yml\n[releases]: https://github.com/elgalu/docker-selenium/releases/\n[Zalenium]: https://github.com/zalando/zalenium\n","funding_links":["https://github.com/sponsors/elgalu","https://www.blockchain.com/btc/address/1PNfExdfu7Kc2n32swKGhqXzzpPd2iXhXB"],"categories":["Shell","Resources"],"sub_categories":["Containers"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felgalu%2Fdocker-selenium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felgalu%2Fdocker-selenium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felgalu%2Fdocker-selenium/lists"}