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_lib과coverage_lib서비스, 그리고 항상 활성화되는web서비스가 포함돼요.debug프로파일이 활성화되면web과debug_lib서비스가 포함되지만test_lib과coverage_lib는 포함되지 않아,debug_lib의depends_on제약 관점에서 모델은 유효하지 않아요.debug와test프로파일이 모두 활성화되면web,test_lib,coverage_lib,debug_lib모든 서비스가 포함돼요.- Compose가
test_lib을 실행할 명시적 서비스로 실행되면,test프로파일이 활성화되지 않아도test_lib과test프로파일이 활성화돼요. - Compose가
coverage_lib을 실행할 명시적 서비스로 실행되면coverage_lib서비스와test프로파일이 활성화되고,test_lib이depends_on제약으로 끌려 들어와요. - Compose가
debug_lib을 실행할 명시적 서비스로 실행되면,debug_lib과test_lib이 공통 프로파일을 나열하지 않으므로 다시debug_lib의depends_on제약 관점에서 모델은 유효하지 않아요. - Compose가
debug_lib을 명시적 서비스로,test프로파일이 활성화된 채 실행되면debug프로파일이 자동으로 활성화되고test_lib이 의존성으로 끌려 들어와debug_lib과test_lib두 서비스가 모두 시작돼요.
Docker Compose에서 프로파일을 사용하는 방법을 자세히 알아보세요.
더 알아보기 (Learn more)
- Docker Compose 프로파일 사용법 가이드를 참고해요.