민프
[Docker][Docker-Compose] 🐳 2. docker-compose.override.yml란? - 환경별 설정을 나누는 진짜 이유 본문
Backend/[Docker]
[Docker][Docker-Compose] 🐳 2. docker-compose.override.yml란? - 환경별 설정을 나누는 진짜 이유
민프야 2025. 5. 14. 20:00
1. 왜 override 파일이 필요한가?
보통 운영 환경(production)과 개발 환경(development)은 설정이 다릅니다.
구분 | 개발(dev) | 운영(prod) |
로그 | console.log 출력 | 파일 저장 |
DB | local MySQL | 클라우드 RDS |
NODE_ENV | development | production |
리빌드 | 자주 | 거의 없음 |
docker-compose.override.yml는 docker-compose.yml의 설정을 자동으로 덮어씌우기 위한 개발자 전용 확장 설정입니다.
2. 작동 방식
// 이렇게 하셔도 되지만
docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d
// 기본적으로 docker-compose.override.yml만 사용중이시라면 아래와 같이 하셔도 적용 됩니다.
docker-compose up
이 명령어는 내부적으로 아래 두 파일을 자동 병합합니다
docker-compose.yml + docker-compose.override.yml
예시를 좀 보여드리자면
# docker-compose.yml
services:
app:
build: .
environment:
- NODE_ENV=production
# docker-compose.override.yml
services:
app:
environment:
- NODE_ENV=development
실행 시 최종적으로 NODE_ENV는 development로 동작합니다!
3. 실제 예시 (개발용 override)
# docker-compose.override.yml
services:
app:
volumes:
- .:/app
environment:
- NODE_ENV=development
command: npm run start:dev
이렇게 하면 운영 배포 환경의 docker-compose.yml은 건드리지 않고, 로컬 개발자만 자신만의 개발 설정으로 실행할 수 있습니다.
만약 production을 위한 설정을 하고싶으시다면 아래 처럼 하셔도됩니다.
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
이렇게 하면 docker-compose.prod.yml이 기본 설정을 덮어씌우게 됩니다.
결론적으로 저는
API 서버, Payment서버를
docker-compose로 dev, prod 각각 개발환경설정으로 올렸습니다.
'Backend > [Docker]' 카테고리의 다른 글
[Docker][Docker-Compose] 🐳 1. docker-compose란 무엇인가? - 복잡한 컨테이너를 한 번에 관리하기 (1) | 2025.05.14 |
---|---|
[Docker] 4. Docker 이미지 작성 및 코드 실행 하기 (Python기준) (0) | 2023.04.18 |
[Docker] 3. Docker 입문 - 이미지 PULL (생활코딩 정리) (0) | 2022.03.11 |
[Docker] 1. Docker 입문 (생활코딩 정리) (0) | 2022.03.11 |
[Docker] Windows 10에 Docker , WSL설치하기 (0) | 2022.03.10 |
Comments