我遇到的问题是,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
答案 0 :(得分:2)
我已经想到了这一点,.Address
是Consul响应元数据的一部分,而不是服务元数据的真正部分。这使我感到困惑,因为我的领事客户端正在同一台主机上运行。
我将-ip
参数更改为我运行的Registrator服务,作为运行docker的主机的内部IP地址(而不是默认值,即Docker容器的IP),一切正常。