기본 패턴
bash
docker compose -f compose.yaml -f compose.dev.yaml up설명
- Compose override 파일은 공통 설정과 환경별 차이를 분리할 때 유용합니다.
- 예를 들어 기본 파일에는 서비스 구조와 공통 네트워크를 두고, 개발용 파일에는 bind mount와 디버그 포트를, 운영용 파일에는 resource 제한과 restart 정책을 추가하는 식으로 나눌 수 있습니다.
- 이렇게 하면 "같은 앱인데 환경마다 조금씩 다른 설정"을 한 파일에 뒤섞지 않고 유지할 수 있습니다.
- 팀 차원에서도 공통 기반과 개인 개발 편의를 구분하기 쉬워지므로, 설정 충돌을 줄이는 데 도움이 됩니다.
- 핵심은 파일을 많이 만드는 것이 아니라, 무엇이 공통이고 무엇이 환경별 차이인지 경계를 분명히 하는 것입니다.
짧은 예제
yaml
services:
app:
volumes:
- .:/app빠른 정리
| 파일 | 역할 |
|---|---|
| 기본 Compose 파일 | 공통 서비스 정의 |
| 개발 override | bind mount, 디버그 설정 |
| 운영 override | 재시작, 리소스 제한 |
| 실행 순서 | 뒤에 오는 파일이 앞 설정을 덮어씀 |
주의할 점
환경별 차이가 커질수록 override 파일이 도움이 되지만, 파일 수가 너무 많아지면 오히려 조합을 기억하기 어려워집니다. 공통 기반 1개와 주요 환경 1개 정도부터 시작하는 편이 관리하기 좋습니다.
참고 링크
1 sources