2015-10-26 12 views
0

У меня есть веб-приложение с базой данных и услугами rabbitMQ. Я использую docker-compose для создания и запуска изображений. rabbitmq: image : rabbitmq:3-management container_name: rabbitmq hostname: rabbitmq ports: - "15672:15672" expose: - "5672" - "4369" - "25672" coredb: container_name: coredb build: ./mongodb/ core: container_name: core build: ./core/ ports: - "80:8080" - "5683/udp:5683/udp" - "5684/udp:5684/udp" links: - rabbitmq - coredbDocker-compose link container, но Application throws «маршрут не найден»

После запуска

докер-составляют до

Все услуги начать работу должным образом. Я могу ping rabbitmq и закодированb из оболочки ядра. В SpringBoot код приложения, я использую

CachingConnectionFactory (имя хоста)

для подключения к RabbitMQ. Имя хоста, которое я даю, это «rabbitmq». В журналах во время публикации событий ошибка, которую я вижу, это «Не найдено маршрута». Служба ядра может подключиться к базе данных правильно, но не может подключиться к rabbitMQ.

ответ

0

Вы можете использовать docker inspect <container name>, чтобы проверить конфигурацию «основной» службы, чтобы убедиться, что ссылка установлена. Вы также можете проверить имя хоста, используя docker exec -ti <container name> cat /etc/hosts (что, я думаю, вы уже сделали).

Если похоже, что он правильно связан, проблема в том, что основная услуга пытается подключиться к нему до начала службы rabbitmq.

Повторите попытку службы «core» несколько раз (с небольшой задержкой), чтобы попытаться установить соединение.

+0

Я попытался перезапустить службу докеров, но проблема все еще существует. Чтобы решить проблему с Spring API, я попытался добавить IP-адрес доклер-контейнера rabbitMQ на хост-машины/etc/hosts. Если я попытаюсь подключиться к rabbitMQ с главной машины, дающей одно и то же имя хоста, все работает нормально. – SHARMA

Смежные вопросы