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
해당 그리드 사용 시 vnc나 novnc 사용 유무는 혹시 어떻게 판단하시고 적용을 하시나요?