Я пользуюсь консулом и Docker. Мой сервис запускается, выбирает бесплатный порт и регистрируется в консуле. Так хорошо, это работает.
Но иногда консулу (consul: latest) нужно пропинговать мой сервис (который не работает в контейнере, а вместо этого является размещенным приложением на сервере), чтобы проверить, работает ли он (проверить состояние работоспособности сервиса) , Это не работает.
Служба регистрируется, но ping не работает. Проверка работоспособности работает таким образом, что консул отправляет в службу HTTP запрос на зарегистрированный адрес (например, http://localhost: 40000 / Health ), который отвечает 200, если он жив.
my docker -compose.yml выглядит следующим образом:
consul:
image: consul:latest
command: consul agent -dev -log-level=warn -ui -client=0.0.0.0
hostname: consul
container_name: consul
ports:
- 8500:8500
Еще одна вещь, когда я изменяю проверку работоспособности с http на tcp, я получаю
"dial tcp 127.0. 0.1: 40000: соединение: соединение отклонено "
Я попытался использовать исполняемый файл автономного консула на локальной машине, и он работает нормально. Поэтому мой вопрос: есть ли способ разблокировать бесплатное общение между docker и локально размещенным сервисом?