Skip to content

Breaking changes: Node/Standalone Docker config path change to /opt/selenium/docker.toml #2754

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ENV_VARIABLES.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@
| SE_DISTRIBUTOR_HOST | | | |
| SE_DISTRIBUTOR_PORT | 5553 | | |
| SE_GRID_URL | | | --grid-url |
| SE_NODE_DOCKER_CONFIG_FILENAME | | | |
| SE_NODE_DOCKER_CONFIG_FILENAME | docker.toml | | |
| SE_NODE_GRACEFUL_SHUTDOWN | | | |
| SE_VIDEO_CONTAINER_NAME | | | |
| SE_RECORD_VIDEO | true | | |
Expand Down
5 changes: 3 additions & 2 deletions NodeDocker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,11 @@ COPY --chown="${SEL_UID}:${SEL_GID}" start-selenium-grid-docker.sh \
start-socat.sh \
/opt/bin/

COPY --chown="${SEL_UID}:${SEL_GID}" config.toml /opt/selenium/
COPY --chown="${SEL_UID}:${SEL_GID}" config.toml /opt/selenium/docker.toml

COPY selenium-grid-docker.conf /etc/supervisor/conf.d/

ENV SE_OTEL_SERVICE_NAME="selenium-node-docker" \
SE_EVENT_BUS_PUBLISH_PORT="4442" \
SE_EVENT_BUS_SUBSCRIBE_PORT="4443"
SE_EVENT_BUS_SUBSCRIBE_PORT="4443" \
SE_NODE_DOCKER_CONFIG_FILENAME="docker.toml"
2 changes: 2 additions & 0 deletions NodeDocker/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ configs = [
"selenium/standalone-chrome:4.30.0-20250323", '{"browserName": "chrome", "platformName": "linux"}',
"selenium/standalone-edge:4.30.0-20250323", '{"browserName": "MicrosoftEdge", "platformName": "linux"}'
]
# Share configs of volumes, DNS, extra hosts between node-docker and node browser containers
host-config-keys = ["Dns", "DnsOptions", "DnsSearch", "ExtraHosts", "Binds"]

# URL for connecting to the docker daemon
# host.docker.internal works for macOS and Windows.
Expand Down
19 changes: 11 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -753,6 +753,9 @@ video-image = "selenium/video:ffmpeg-7.1.1.1-20250323"
#port = <port-from-node-machine>
```

**Mount the local `config.toml` file to the container path `/opt/selenium/docker.toml`**.
This config file path specific for Dynamic Grid (node/standalone docker) by default to avoid conflict with the config file in node browser containers (since users can share volumes config to node browser containers, see below section for details).

With the optional config key `host-config-keys` under section [docker] in a config.toml file (or CLI option --docker-host-config-keys). Users can specify a list of docker host configuration keys that should be passed to browser containers.

Valid key names for Docker host config can be found in the Docker API [documentation](https://docs.docker.com/engine/api/latest/#tag/Container/operation/ContainerCreate) or via the command `docker inspect` the node-docker container.
Expand Down Expand Up @@ -799,7 +802,7 @@ virtual machines.
$ docker network create grid
$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.30.0-20250323
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \
-v ${PWD}/config.toml:/opt/selenium/config.toml \
-v ${PWD}/config.toml:/opt/selenium/docker.toml \
-v ${PWD}/assets:/opt/selenium/assets \
-v /var/run/docker.sock:/var/run/docker.sock \
selenium/node-docker:4.30.0-20250323
Expand All @@ -811,7 +814,7 @@ $ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \
$ docker network create grid
$ docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.30.0-20250323
$ docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub `
-v ${PWD}/config.toml:/opt/selenium/config.toml `
-v ${PWD}/config.toml:/opt/selenium/docker.toml `
-v ${PWD}/assets:/opt/selenium/assets `
-v /var/run/docker.sock:/var/run/docker.sock `
selenium/node-docker:4.30.0-20250323
Expand All @@ -832,7 +835,7 @@ $ docker network rm grid

```bash
docker run --rm --name selenium-docker -p 4444:4444 \
-v ${PWD}/config.toml:/opt/selenium/config.toml \
-v ${PWD}/config.toml:/opt/selenium/docker.toml \
-v ${PWD}/assets:/opt/selenium/assets \
-v /var/run/docker.sock:/var/run/docker.sock \
selenium/standalone-docker:4.30.0-20250323
Expand All @@ -842,7 +845,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \

```bash
docker run --rm --name selenium-docker -p 4444:4444 `
-v ${PWD}/config.toml:/opt/selenium/config.toml `
-v ${PWD}/config.toml:/opt/selenium/docker.toml `
-v ${PWD}/assets:/opt/selenium/assets `
-v /var/run/docker.sock:/var/run/docker.sock `
selenium/standalone-docker:4.30.0-20250323
Expand All @@ -863,7 +866,7 @@ $ docker run -d -p 4442-4444:4442-4444 --name selenium-hub selenium/hub:4.30.0-2
```bash
$ docker run -d -p 5555:5555 \
-e SE_EVENT_BUS_HOST=<ip-from-machine-1> \
-v ${PWD}/config.toml:/opt/selenium/config.toml \
-v ${PWD}/config.toml:/opt/selenium/docker.toml \
-v ${PWD}/assets:/opt/selenium/assets \
-v /var/run/docker.sock:/var/run/docker.sock \
selenium/node-docker:4.30.0-20250323
Expand All @@ -874,7 +877,7 @@ $ docker run -d -p 5555:5555 \
```bash
$ docker run -d -p 5555:5555 `
-e SE_EVENT_BUS_HOST=<ip-from-machine-1> `
-v ${PWD}/config.toml:/opt/selenium/config.toml `
-v ${PWD}/config.toml:/opt/selenium/docker.toml `
-v ${PWD}/assets:/opt/selenium/assets `
-v /var/run/docker.sock:/var/run/docker.sock `
selenium/node-docker:4.30.0-20250323
Expand Down Expand Up @@ -932,7 +935,7 @@ be forwared and set in the container. You can set the desired environment variab
```bash
docker run --rm --name selenium-docker -p 4444:4444 \
-e SE_NODE_SESSION_TIMEOUT=700 \
-v ${PWD}/config.toml:/opt/selenium/config.toml \
-v ${PWD}/config.toml:/opt/selenium/docker.toml \
-v ${PWD}/assets:/opt/selenium/assets \
-v /var/run/docker.sock:/var/run/docker.sock \
selenium/standalone-docker:4.30.0-20250323
Expand All @@ -943,7 +946,7 @@ docker run --rm --name selenium-docker -p 4444:4444 \
```bash
docker run --rm --name selenium-docker -p 4444:4444 `
-e SE_NODE_SESSION_TIMEOUT=700 `
-v ${PWD}/config.toml:/opt/selenium/config.toml `
-v ${PWD}/config.toml:/opt/selenium/docker.toml `
-v ${PWD}/assets:/opt/selenium/assets `
-v /var/run/docker.sock:/var/run/docker.sock `
selenium/standalone-docker:4.30.0-20250323
Expand Down
4 changes: 4 additions & 0 deletions StandaloneDocker/start-selenium-grid-docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,10 @@ if [ "${SE_ENABLE_TLS}" = "true" ]; then
fi
fi

if [ ! -z "${SE_NODE_DOCKER_CONFIG_FILENAME}" ]; then
CONFIG_FILE="/opt/selenium/${SE_NODE_DOCKER_CONFIG_FILENAME}"
fi

echo "Selenium Grid Standalone Docker configuration: "
cat "${CONFIG_FILE}"

Expand Down
2 changes: 1 addition & 1 deletion docker-compose-v3-dynamic-grid.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ services:
image: selenium/node-docker:4.30.0-20250323
volumes:
- ./assets:/opt/selenium/assets
- ./NodeDocker/config.toml:/opt/selenium/config.toml
- ./NodeDocker/config.toml:/opt/selenium/docker.toml
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- selenium-hub
Expand Down
2 changes: 1 addition & 1 deletion docker-compose-v3-video-upload-dynamic-grid.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ services:
image: selenium/node-docker:4.30.0-20250323
volumes:
- ./assets:/opt/selenium/assets
- ./NodeDocker/config.toml:/opt/selenium/config.toml
- ./NodeDocker/config.toml:/opt/selenium/docker.toml
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- selenium-hub
Expand Down
2 changes: 1 addition & 1 deletion scripts/generate_list_env_vars/value.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@
- name: SE_NODE_CONTAINER_NAME
default: ''
- name: SE_NODE_DOCKER_CONFIG_FILENAME
default: ''
default: docker.toml
- name: SE_NODE_ENABLE_CDP
default: ''
- name: SE_NODE_ENABLE_MANAGED_DOWNLOADS
Expand Down
1 change: 0 additions & 1 deletion tests/docker-compose-v3-test-node-docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ services:
- selenium-hub
- ftp_server
environment:
- SE_NODE_DOCKER_CONFIG_FILENAME=docker.toml
- SE_EVENT_BUS_HOST=selenium-hub
- SE_NODE_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS}
- SE_OPTS=--enable-managed-downloads ${SELENIUM_ENABLE_MANAGED_DOWNLOADS}
Expand Down
2 changes: 1 addition & 1 deletion tests/docker-compose-v3-test-standalone-docker.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ services:
- ftp_server
volumes:
- ./videos:/opt/selenium/assets
- ./videos/config.toml:/opt/selenium/config.toml
- ./videos/config.toml:/opt/selenium/docker.toml
- /var/run/docker.sock:/var/run/docker.sock
environment:
- SE_VNC_NO_PASSWORD=true
Expand Down
Loading