github.com/khulnasoft/cli@v0.0.0-20240402070845-01bcad7beefa/docs/reference/commandline/stack_config.md (about)

     1  # stack config
     2  
     3  <!---MARKER_GEN_START-->
     4  Outputs the final config file, after doing merges and interpolations
     5  
     6  ### Options
     7  
     8  | Name                   | Type          | Default | Description                                       |
     9  |:-----------------------|:--------------|:--------|:--------------------------------------------------|
    10  | `-c`, `--compose-file` | `stringSlice` |         | Path to a Compose file, or `-` to read from stdin |
    11  | `--skip-interpolation` |               |         | Skip interpolation and output only merged config  |
    12  
    13  
    14  <!---MARKER_GEN_END-->
    15  
    16  ## Description
    17  
    18  Outputs the final Compose file, after doing the merges and interpolations of the input Compose files.
    19  
    20  ## Examples
    21  
    22  The following command outputs the result of the merge and interpolation of two Compose files.
    23  
    24  ```console
    25  $ docker stack config --compose-file docker-compose.yml --compose-file docker-compose.prod.yml
    26  ```
    27  
    28  The Compose file can also be provided as standard input with `--compose-file -`:
    29  
    30  ```console
    31  $ cat docker-compose.yml | docker stack config --compose-file -
    32  ```
    33  
    34  ### Skipping interpolation
    35  
    36  In some cases, it might be useful to skip interpolation of environment variables.
    37  For example, when you want to pipe the output of this command back to `stack deploy`.
    38  
    39  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}`.
    40  
    41  ```yaml
    42    service: webserver
    43    environment:
    44      REDIRECT_REGEX=http://host/redirect/$${1} 
    45  ```
    46  
    47  With interpolation, the `stack config` command will replace the environment variable in the Compose file 
    48  with `REDIRECT_REGEX=http://host/redirect/${1}`, but then when piping it back to the `stack deploy` 
    49  command it will be interpolated again and result in undefined behavior. 
    50  That is why, when piping the output back to `stack deploy` one should always prefer the `--skip-interpolation` option.
    51  
    52  ```console
    53  $ docker stack config --compose-file web.yml --compose-file web.prod.yml --skip-interpolation | docker stack deploy --compose-file -
    54  ```
    55  
    56  ## Related commands
    57  
    58  * [stack deploy](stack_deploy.md)
    59  * [stack ps](stack_ps.md)
    60  * [stack rm](stack_rm.md)
    61  * [stack services](stack_services.md)