1

I am using Windows to run Selenium Grid 4 (Dynamic Grid) with Docker. Here is the documentation I am following https://github.com/SeleniumHQ/docker-selenium. I have a docker-compose file and a config.toml file, both of which resides in my Documents directory. I have attached it for convenience below.

docker-compose.yml

# To execute this docker-compose yml file use `docker-compose -f docker-compose-v3-dynamic-grid.yml up`
# Add the `-d` flag at the end for detached execution
# To stop the execution, hit Ctrl+C, and then `docker-compose -f docker-compose-v3-dynamic-grid.yml down`
version: "3"
services:
  node-docker:
    image: selenium/node-docker:4.1.2-20220208
    volumes:
      - ./assets:/opt/selenium/assets
      - ./NodeDocker/config.toml:/opt/bin/config.toml
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443

  selenium-hub:
    image: selenium/hub:4.1.2-20220208
    container_name: selenium-hub
    ports:
      - "4442:4442"
      - "4443:4443"
      - "4444:4444"

config.toml

[docker]
# Configs have a mapping between the Docker image to use and the capabilities that need to be matched to
# start a container with the given image.
configs = [
    "selenium/standalone-firefox:4.1.2-20220208", "{\"browserName\": \"firefox\"}",
    "selenium/standalone-chrome:4.1.2-20220208", "{\"browserName\": \"chrome\"}",
    "selenium/standalone-edge:4.1.2-20220208", "{\"browserName\": \"MicrosoftEdge\"}"
    ]

# URL for connecting to the docker daemon
# Most simple approach, leave it as http://127.0.0.1:2375, and mount /var/run/docker.sock.
# 127.0.0.1 is used because interally the container uses socat when /var/run/docker.sock is mounted 
# If var/run/docker.sock is not mounted: 
# Windows: make sure Docker Desktop exposes the daemon via tcp, and use http://host.docker.internal:2375.
# macOS: install socat and run the following command, socat -4 TCP-LISTEN:2375,fork UNIX-CONNECT:/var/run/docker.sock,
# then use http://host.docker.internal:2375.
# Linux: varies from machine to machine, please mount /var/run/docker.sock. If this does not work, please create an issue.
url = "http://127.0.0.1:2375"
# Docker image used for video recording
video-image = "selenium/video:ffmpeg-4.3.1-20220208"

# Uncomment the following section if you are running the node on a separate VM
# Fill out the placeholders with appropriate values
#[server]
#host = <ip-from-node-machine>
#port = <port-from-node-machine>

When I perform the following command from powershell or windows command line from within the 'Documents' directory where they both live, get the error:

docker-compose up

enter image description here

PS C:\users\antwan.maddox\Documents> docker-compose up
WARNING: Found multiple config files with supported names: docker-compose.yml, docker-compose.yaml
WARNING: Using docker-compose.yml

Creating network "documents_default" with the default driver
Creating selenium-hub ... done
Creating documents_node-docker_1 ... error

ERROR: for documents_node-docker_1  Cannot start service node-docker: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/host_mnt/c/Users/antwan.maddox/Documents/NodeDocker/config.toml\\\" to rootfs \\\"/var/lib/docker/overlay2/6e6f26f815f567ae05e777c7d05e3139aeb09a3bd399355ae5fc0dce858bfe6d/merged\\\" at \\\"/var/lib/docker/overlay2/6e6f26f815f567ae05e777c7d05e3139aeb09a3bd399355ae5fc0dce858bfe6d/merged/opt/bin/config.toml\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

ERROR: for node-docker  Cannot start service node-docker: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/host_mnt/c/Users/antwan.maddox/Documents/NodeDocker/config.toml\\\" to rootfs \\\"/var/lib/docker/overlay2/6e6f26f815f567ae05e777c7d05e3139aeb09a3bd399355ae5fc0dce858bfe6d/merged\\\" at \\\"/var/lib/docker/overlay2/6e6f26f815f567ae05e777c7d05e3139aeb09a3bd399355ae5fc0dce858bfe6d/merged/opt/bin/config.toml\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
ERROR: Encountered errors while bringing up the project.

Please help me understand what I am missing when following the documentation, which did mention something about mounting assets. I am not sure what that means, but I am using a Windows machine. I just want to run the example as shown here https://www.youtube.com/watch?v=nEyo8cNhZb4&t=391s

user5199
  • 359
  • 2
  • 15

0 Answers0