docker-compose로 Selenium 컨테이너 관리하기

정태경·2022년 6월 11일
0
post-thumbnail

docker-compose를 활용하면 이전에 생성한 도커 컨테이너를 보다 편리하게 실행하고 관리할 수 있다.
docker-compose는 연결된 다수의 container를 하나로 통합하여 관리하는 도구라고 이해하면 될 것 같다.
docker-compose는 YAML 문법으로 작성된 yml 파일을 필요로 하며, YAML 문법에 대한 이해도가 뒷받침되어야 한다.

YAML이란?

기존의 컨테이너 실행 방법을 docker-compose.yml 파일로 만들어보면 다음과 같다.


version: "3"
services:
  # 크롬 드라이버 컨테이너 설정
  chrome:
    image: selenium/node-chrome:4.2.2-20220609
    shm_size: 2gb
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
      - SE_NODE_MAX_SESSIONS=5

  # 엣지 드라이버 컨테이너 설정
  edge:
    image: selenium/node-edge:4.2.2-20220609
    shm_size: 2gb
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
      - SE_NODE_MAX_SESSIONS=5

  # 파이어폭스 드라이버 컨테이너 설정 
  firefox:
    image: selenium/node-firefox:4.2.2-20220609
    shm_size: 2gb
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
      - SE_NODE_MAX_SESSIONS=5

  # Selenium hub 컨테이너 설정
  selenium-hub:
    image: selenium/hub:4.2.2-20220609
    container_name: selenium-hub
    ports:
      - "4442:4442"
      - "4443:4443"
      - "4444:4444"

docker-compose를 활용하면 컨테이너를 하나하나 실행하지 않아도 docker-compose.yml 파일을 빌드 하여 실행하면 사전에 정의한 컨테이너 실행 순서와 옵션에 따라 순차적으로 컨테이너가 실행된다.

$ docker-compose up -d --build

profile
現 두나무 업비트 QA 엔지니어, 前 마이리얼트립 TQA 엔지니어

1개의 댓글

comment-user-thumbnail
2022년 7월 4일

해당 그리드 사용 시 vnc나 novnc 사용 유무는 혹시 어떻게 판단하시고 적용을 하시나요?

답글 달기