command: docker stack config short: Outputs the final config file, after doing merges and interpolations long: | Outputs the final Compose file, after doing the merges and interpolations of the input Compose files. usage: docker stack config [OPTIONS] pname: docker stack plink: docker_stack.yaml options: - option: compose-file shorthand: c value_type: stringSlice default_value: '[]' description: Path to a Compose file, or `-` to read from stdin deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false - option: skip-interpolation value_type: bool default_value: "false" description: Skip interpolation and output only merged config deprecated: false hidden: false experimental: false experimentalcli: false kubernetes: false swarm: false inherited_options: - option: help value_type: bool default_value: "false" description: Print usage deprecated: false hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false - option: orchestrator value_type: string description: Orchestrator to use (swarm|all) deprecated: true hidden: true experimental: false experimentalcli: false kubernetes: false swarm: false examples: |- The following command outputs the result of the merge and interpolation of two Compose files. ```console $ docker stack config --compose-file docker-compose.yml --compose-file docker-compose.prod.yml ``` The Compose file can also be provided as standard input with `--compose-file -`: ```console $ cat docker-compose.yml | docker stack config --compose-file - ``` ### Skipping interpolation In some cases, it might be useful to skip interpolation of environment variables. For example, when you want to pipe the output of this command back to `stack deploy`. If you have a regex for a redirect route in an environment variable for your webserver you would use two `$` signs to prevent `stack deploy` from interpolating `${1}`. ```yaml service: webserver environment: REDIRECT_REGEX=http://host/redirect/$${1} ``` With interpolation, the `stack config` command will replace the environment variable in the Compose file with `REDIRECT_REGEX=http://host/redirect/${1}`, but then when piping it back to the `stack deploy` command it will be interpolated again and result in undefined behavior. That is why, when piping the output back to `stack deploy` one should always prefer the `--skip-interpolation` option. ```console $ docker stack config --compose-file web.yml --compose-file web.prod.yml --skip-interpolation | docker stack deploy --compose-file - ``` deprecated: false hidden: false min_api_version: "1.25" experimental: false experimentalcli: false kubernetes: false swarm: true