Docker Compose

Compose는 여러 컨테이너의 연결 계약을 한 파일에 둔다

Nest 앱, PostgreSQL, Redis를 같은 네트워크에 올리고 서비스 이름을 주소처럼 사용합니다. 시작 순서와 준비 상태는 별도로 구분해서 봐야 합니다.

app

NestJS API

DATABASE_HOST=db, REDIS_HOST=redis처럼 서비스 이름을 사용합니다.

db

PostgreSQL

데이터 볼륨을 마운트해 컨테이너 재생성 후에도 상태를 보존합니다.

redis

Cache

세션, 큐, 캐시 같은 보조 상태를 앱과 분리해 운영합니다.

build앱 이미지를 Dockerfile로 빌드context와 dockerfile 지정
environment런타임 변수 주입.env 값을 참조
volumesDB/Redis 상태 보존컨테이너 삭제와 데이터 분리
depends_on시작 순서준비 완료는 healthcheck 필요
운영 해석

Compose는 로컬 운영 설계도다

한 명령으로 여러 컨테이너를 띄우는 편의 기능을 넘어, 앱이 어떤 의존 서비스와 어떤 이름으로 연결되는지 문서화합니다.