Docker Compose 프로파일 사용법

Docker Compose 프로파일 사용법 (Profiles)

Compose 프로파일을 사용하면 활성 프로파일 세트를 정의해 다양한 용도와 환경에 맞게 Compose 애플리케이션 모델을 조정할 수 있어요.

출처: 문서

본문

프로파일을 사용하면 활성 프로파일 세트를 정의해 다양한 용도와 환경에 맞게 Compose 애플리케이션 모델을 조정할 수 있어요.

services 최상위 요소는 profiles 속성을 지원해 이름 있는 프로파일 목록을 정의해요. profiles 속성이 없는 서비스는 항상 활성화돼요.

명령으로 서비스를 명시적으로 대상으로 하지 않는 한, 나열된 프로파일 중 어느 것도 활성 프로파일과 일치하지 않으면 그 서비스는 Compose에서 무시돼요. 명시적으로 대상이 되면 그 프로파일이 활성 프로파일 세트에 추가돼요.

참고

다른 모든 최상위 요소는 프로파일의 영향을 받지 않고 항상 활성화돼요.

다른 서비스에 대한 참조(links, extends, 또는 shared resource 문법 service:xxx)는 활성 프로파일에 의해 무시됐을 구성 요소를 자동으로 활성화하지 않아요. 대신 Compose는 오류를 반환해요.

예시 (Illustrative example)

services:
  web:
    image: web_image

  test_lib:
    image: test_lib_image
    profiles:
      - test

  coverage_lib:
    image: coverage_lib_image
    depends_on:
      - test_lib
    profiles:
      - test

  debug_lib:
    image: debug_lib_image
    depends_on:
      - test_lib
    profiles:
      - debug

위 예제에서:

  • 활성 프로파일이 없을 때 Compose 애플리케이션 모델을 파싱하면 web 서비스만 포함돼요.
  • test 프로파일이 활성화되면 test_libcoverage_lib 서비스, 그리고 항상 활성화되는 web 서비스가 포함돼요.
  • debug 프로파일이 활성화되면 webdebug_lib 서비스가 포함되지만 test_libcoverage_lib는 포함되지 않아, debug_libdepends_on 제약 관점에서 모델은 유효하지 않아요.
  • debugtest 프로파일이 모두 활성화되면 web, test_lib, coverage_lib, debug_lib 모든 서비스가 포함돼요.
  • Compose가 test_lib을 실행할 명시적 서비스로 실행되면, test 프로파일이 활성화되지 않아도 test_libtest 프로파일이 활성화돼요.
  • Compose가 coverage_lib을 실행할 명시적 서비스로 실행되면 coverage_lib 서비스와 test 프로파일이 활성화되고, test_libdepends_on 제약으로 끌려 들어와요.
  • Compose가 debug_lib을 실행할 명시적 서비스로 실행되면, debug_libtest_lib이 공통 프로파일을 나열하지 않으므로 다시 debug_libdepends_on 제약 관점에서 모델은 유효하지 않아요.
  • Compose가 debug_lib을 명시적 서비스로, test 프로파일이 활성화된 채 실행되면 debug 프로파일이 자동으로 활성화되고 test_lib이 의존성으로 끌려 들어와 debug_libtest_lib 두 서비스가 모두 시작돼요.

Docker Compose에서 프로파일을 사용하는 방법을 자세히 알아보세요.

더 알아보기 (Learn more)

  • Docker Compose 프로파일 사용법 가이드를 참고해요.