Docker Compose

NestJS Compose 서비스 토폴로지

Compose는 Nest 앱, 데이터베이스, 캐시 같은 여러 컨테이너를 하나의 네트워크와 환경 변수 묶음으로 실행한다.

여러 컨테이너가 함께 뜨는 구조

multi service

서비스 정의

app, db, redis처럼 역할별 컨테이너를 compose 파일에 적는다.

환경 변수

앱은 DATABASE_URL처럼 컨테이너 이름 기반 주소를 사용한다.

의존 순서

depends_on으로 시작 순서를 잡되 준비 완료는 별도 healthcheck로 본다.

공유 네트워크

서비스 이름이 내부 DNS처럼 동작해 컨테이너끼리 통신한다.

docker composeapp servicedb/cachenetworkhealthcheck
배포 이미지 해석

Compose의 핵심은 여러 프로세스를 한 명령으로 띄우는 것이 아니라, 개발 환경의 연결 관계를 코드로 남기는 것이다.