Double-Double Curly Braces in docker-compose.yml for kafka



我正在查看wurstmeister/kafka-docker,发现这种拉动建议使用IP地址。 基本上,它使用 docker 信息格式:

HOSTNAME_COMMAND: "docker info -f '{{`{{.Swarm.NodeAddr}}`}}'"

我知道它使用格式来获取地址的想法,但我不明白额外的 {{...}} 是怎么回事 和反引号(这通常是一个 eval(。 docker-compose 允许 ${variables},但这里没有美元符号 ($(,所以不需要转义。 为什么这不仅仅是:

HOSTNAME_COMMAND: "docker info -f '{{.Swarm.NodeAddr}}'"

我在其他地方见过这种情况,所以我认为这是有原因的。

这基本上是这篇文章的重复。 但是,如果您不知道 docker-compose 文件使用 Go 模板,您可能找不到那个模板(我在撰写文件参考中没有找到任何提及它的内容(。 所以基本上,在 go 中,反引号表示一个文字字符串,所以 {{ }} 的外部集合是一个模板,允许反引号从字面上获取所有内容。

最新更新