docker stack config

docker stack config

docker stack config는 Compose 파일들을 병합하고 보간(interpolation)한 최종 설정을 출력하는 명령이에요. 실제 배포 전에 어떤 설정이 적용될지 미리 확인할 수 있어요.

출처: 문서

본문

docker stack config는 입력으로 받은 Compose 파일들의 병합(merge)과 보간(interpolation)을 수행한 최종 Compose 파일을 출력해요.

docker stack config [OPTIONS]

스웜 오케스트레이터와 함께 동작해요.

지원하는 옵션은 다음과 같아요.

옵션 기본값 설명
-c, --compose-file Compose 파일 경로예요. -를 쓰면 표준 입력에서 읽어요.
--skip-interpolation 보간을 건너뛰고 병합된 설정만 출력해요.

예시

두 개의 Compose 파일을 병합한 결과를 출력하는 예시예요.

$ docker stack config --compose-file docker-compose.yml --compose-file docker-compose.prod.yml

Compose 파일을 표준 입력으로 줄 수도 있어요.

$ cat docker-compose.yml | docker stack config --compose-file -

보간 건너뛰기 (--skip-interpolation)

경우에 따라 환경 변수 보간을 건너뛰는 게 유용할 때가 있어요. 예를 들어 이 명령의 출력을 stack deploy로 다시 파이프할 때 그래요. 웹 서버의 리다이렉트 라우트 정규식에 ${1} 보간을 막고 싶으면 $를 두 번 써요.

service: webserver
  environment:
    REDIRECT_REGEX=http://host/redirect/$${1}

보간을 하면 stack config 명령이 Compose 파일의 환경 변수를 REDIRECT_REGEX=http://host/redirect/${1}로 치환한 뒤, stack deploy로 다시 파이프되면서 또 보간돼 예상 밖의 동작이 벌어질 수 있어요. 그래서 출력을 stack deploy로 되돌려 보낼 때는 항상 --skip-interpolation을 쓰는 게 좋아요.

$ docker stack config --compose-file web.yml --compose-file web.prod.yml --skip-interpolation | docker stack deploy --compose-file -

더 알아보기