我目前有完全相同的问题,但对于 Nginx。
根据我的研究,没有好的解决方案。似乎可行的方法是安装卷
-v /var/run/docker.sock:/var/run/docker.sock
在领事模板容器上。
我看到你正在使用:
consul-template -consul-addr=xx.xx.xx.xx:8500 -template /etc/consul-template/data/haproxy.cfg.ctmpl:/etc/consul-template/data/haproxy.cfg
为了在 consul-template 呈现新的配置文件后运行命令,请使用以下内容:
consul-template -consul-addr=xx.xx.xx.xx:8500 -template /etc/consul-template/data/haproxy.cfg.ctmpl:/etc/consul-template/data/haproxy.cfg:docker run haproxy-container command-to-reload-haproxy
暗示
我发现使用 consul-template 配置文件更具可读性,这里的语言非常明确:
https ://github.com/hashicorp/consul-template/blob/master/docs/configuration.md 。
使用这种方法,您将拥有一个用于 consul-template 的配置文件(例如 consul_template_config.hcl),例如:
consul {
address = "consul-address:8500"
}
template {
source = "/etc/consul-template/data/haproxy.cfg.ctmpl"
destination = "/etc/consul-template/data/haproxy.cfg"
command = "docker run haproxy-container command-to-reload-haproxy"
}
然后,您运行 consul-template 容器使用
consul-template -config /path/to/consul_template_config.hcl
或使用
consul-template -config /path/to/folder/containing->consul_template_config.hcl (This approach is more advanced, and lets you have consul-template-configs across multiple files, and not only in 1 like consul_template_config.hcl)
我知道使用这个 docker 卷(安全警告)不是一个好的解决方案,但这是我能找到的关于我们的用例的内容。