У меня есть сервер узлов, который регистрирует свой адрес в Консуле.Оба работают в док-контейнерах.
consul.deregister();
const registration = { address: CONSUL_HOST || '127.0.0.1',
port: parseInt(process.env.PORT, 10) || 3000 };
console.log(registration);
//logs correct host and port from within its container
setInterval(() =>
consul.register(registration),
30000);
консул регистрирует службу.Ниже приведен ответ из контейнера консула для службы узла.
[
{
"ID": "<-- id -->",
"Node": "consul",
"Address": "127.0.0.1",
"Datacenter": "dc1",
"TaggedAddresses": {
"lan": "127.0.0.1",
"wan": "127.0.0.1"
},
"NodeMeta": {
"consul-network-segment": ""
},
"ServiceID": "my_portal",
"ServiceName": "my_portal",
"ServiceTags": [],
"ServiceAddress": "", ## <--- ?
"ServiceMeta": {},
"ServicePort": 0, ## <--- ?
"ServiceEnableTagOverride": false,
"CreateIndex": 12,
"ModifyIndex": 12
}
]
Обратите внимание, что у меня есть несколько других служб на той же машине в контейнерах, но не приложения узла, которые успешно зарегистрировали свои адреса.Я не уверен, что это лучший способ отладить это.Приложение явно получает правильные переменные из docker-compose.Любая помощь, пытающаяся отладить это, будет принята с благодарностью, спасибо!