docker stack 配置

描述输出合并和插值后的最终配置文件
用法docker stack config [OPTIONS]

Swarm 此命令适用于 Swarm 调度器。

描述

输出最终的 Compose 文件,在对输入的 Compose 文件进行合并和插值之后。

选项

选项默认描述
-c, --compose-fileCompose 文件的路径,或 - 从标准输入读取
--skip-interpolation跳过插值并仅输出合并后的配置

示例

以下命令输出两个 Compose 文件合并和插值后的结果。

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

Compose 文件也可以通过 --compose-file - 作为标准输入提供:

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

跳过插值

在某些情况下,跳过环境变量的插值可能很有用。 例如,当您希望将此命令的输出通过管道传送回 stack deploy 时。

如果你在 web 服务器的环境变量中为重定向路由使用正则表达式,你会使用两个 $ 符号来防止 stack deploy 插值 ${1}

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

通过插值,stack config 命令将使用 REDIRECT_REGEX=http://host/redirect/${1} 替换 Compose 文件中的环境变量,但是当将其通过管道传递回 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 -