# Docker Compose

參考 Selenium 在 DockerHub (opens new window) 的 image 說明,與 Selenium 的範例 (opens new window),實作如下的 Docker Compose file:

version: "3"

services:
  tester:
    build: .
    working_dir: /source
    volumes:
      - .:/source
    depends_on:
      - chrome
      - firefox

  hub:
    image: selenium/hub:3.141.59-iron
    container_name: hub
    ports:
      - "4444:4444"

  chrome:
    image: selenium/node-chrome-debug:3.141.59-iron
    volumes:
      - /dev/shm:/dev/shm
    depends_on:
      - hub
    environment:
      - HUB_HOST=hub
      - HUB_PORT=4444
    ports:
      - "5900:5900"

  firefox:
    image: selenium/node-firefox-debug:3.141.59-iron
    volumes:
      - /dev/shm:/dev/shm
    depends_on:
      - hub
    environment:
      - HUB_HOST=hub
      - HUB_PORT=4444
    ports:
      - "5901:5900"

先啟動依賴的容器:

docker-compose up -d hub chrome firefox

接著就能執行測試:

docker-compose run --rm --no-deps tester

這兩個指令,-d--rmdocker run 的參數意義相同,--no-deps 則是不額外啟動 depends_on 的 container。

# References