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 -