目标:在没有硬编码的情况下,通过 phpapp 容器 提供的网页对http:// $ IP:$ PORT / api / container.json进行XHR调用微服务 api 容器的IP和端口 的环境变量。
http://CONSULHOST:8500/v1/catalog/service/api会公开我的 api 微服务的配置。
示例:
[{"Node":"node",
"Address":"123.1.2.3",
"ServiceID":"163b5be3-5450-4cac-8416-c1630723bc42-n1:microlith_micro-hipchat_1:443",
"ServiceName":"hipchat",
"ServiceTags":["primary"],
"ServiceAddress":"123.234.234.234",
"ServicePort":32772
}]
我希望通过在 phpapp ServiceAddress 和 ServicePort 端口>动态Docker容器,无需对信息进行硬编码。然后,我可以在前端网络浏览器中将此信息用作对http://IP_OF_APP_CONTAINER:PUBLIC_PORT/api/container.json的Javascript调用
我在Consul安装了Registrator,两者都在Docker Swarm中工作。
我已经制作了一个用例图表:
docker-compose
-> swarm ->
phpapp container
api container
consul container
registrator container
将进行XHR调用的javascript将是客户端,从我的php容器提供。 phpapp和api容器都显示在consul中,我在Consul API中看到它们,但是我想知道如何在phpapp容器上动态地将这些信息映射到配置中,以便我可以从中进行XHR调用phpapp容器的Web客户端。