DockerCompose와 멀티컨테이너

Compose profiles 기본

선택적 서비스 기동을 위한 Compose `profiles` 기능의 기본 목적과 사용 흐름을 정리합니다.

마지막 수정 2026년 3월 21일

기본 패턴

yaml
services:
  app:
    build: .
  adminer:
    image: adminer
    profiles:
      - debug

설명

  • profiles는 모든 서비스를 항상 띄우지 않고, 필요할 때만 일부 서비스를 선택적으로 포함할 수 있게 해 줍니다.
  • 개발 중에는 DB 관리 UI, 메일 테스트 서버, mock 서비스처럼 "가끔만 필요한 보조 서비스"가 자주 생기는데, 이런 경우에 특히 잘 맞습니다.
  • 핵심 서비스는 기본으로 켜 두고, 보조 서비스만 profile로 묶으면 기본 실행 명령이 더 가벼워집니다.
  • override 파일이 "환경별 설정 차이"를 분리하는 도구라면, profiles는 "같은 환경 안에서 선택적 구성"을 다루는 도구라고 보면 이해가 쉽습니다.
  • 서비스 수가 늘어날수록 "항상 필요한 것"과 "상황에 따라 필요한 것"을 분리하는 기준이 중요해집니다.

짧은 예제

bash
docker compose --profile debug up
docker compose --profile debug --profile tools up

빠른 정리

항목설명
기본 서비스profile 없이 항상 포함
profile 서비스명시할 때만 포함
용도디버그 도구, 보조 서비스
장점기본 실행 구성을 단순화

주의할 점

profiles는 편리하지만, 핵심 서비스까지 과하게 분리하면 팀원이 어떤 조합으로 띄워야 하는지 헷갈리기 쉽습니다. "선택적 서비스"에만 제한적으로 쓰는 편이 가장 안정적입니다.

참고 링크

1 sources