consul-template使用模板中的Address not ServiceAddress

时间:2016-03-08 15:11:29

标签: bash nginx docker consul consul-template

我遇到的问题是,consul-template似乎在我的模板中替换服务“ServiceAddress”而不是“Address”,我想知道是否有人可以告诉我原因。

在我的nginx容器中的bash会话中,consul-template也在运行,我可以从Consul获取服务定义:

{{range service "service1"}}server {{.Address}}:{{.Port}};

我的consul-template模板文件如下:

Address

我希望这会输出ServiceAddress,而不是服务的consul-template -consul consul-server.service.consul:8500 -template "/var/templates/service1.conf.tmpl" -dry -once server 172.17.0.3:32809 。但是,发生以下情况:

document.referrer

1 个答案:

答案 0 :(得分:2)

我已经想到了这一点,.Address是Consul响应元数据的一部分,而不是服务元数据的真正部分。这使我感到困惑,因为我的领事客户端正在同一台主机上运行。

我将-ip参数更改为我运行的Registrator服务,作为运行docker的主机的内部IP地址(而不是默认值,即Docker容器的IP),一切正常。