У меня есть следующее содержимое docker-compose:
version: '3.4'
services:
reporting.service:
image: xxx.azurecr.io/beta/reporting.service
environment:
- ASPNETCORE_ENVIRONMENT=Docker
ports:
- "5003:80"
messaging.bus:
image: rabbitmq:3-management
environment:
- RABBITMQ_DEFAULT_USER=user
- RABBITMQ_DEFAULT_PASS=user
- RABBITMQ_DEFAULT_VHOST=test
links:
- reporting.service
ports:
- "15672"
- "5672"
web.frontend:
image: xxx.azurecr.io/beta/web.frontend
ports:
- "3000:80"
При выполнении выше на локальном компьютере на моей машине с помощью docker все работает нормально, и мой report.service может подключиться к messaging.bus (RabbitMQ) безлюбая проблема.
Строка подключения выглядит примерно так:
"EventBus": {
"ConnectionString": "amqp://user:user@messaging.bus:5672/test"
},
Когда я помещаю свои изображения в реестр контейнеров Azure и пытаюсь использовать его в веб-приложении Azure для контейнеров, возникает следующее исключениев контейнере report.service:
RabbitMQ.Client.Exceptions.BrokerUnreachableException: ни одна из указанных конечных точек не была доступна ---> System.AggregateException: произошла одна или несколько ошибок.(Соединение не установлено) ---> RabbitMQ.Client.Exceptions.ConnectFailureException: Соединение не удалось ---> System.Net.Internals.SocketExceptionFactory + ExtendedSocketException: Нет такого устройства или адреса
К вашему сведению, я реализовалПолитика повторных попыток Polly в службе report.service при подключении к RabbitMQ, чтобы код выполнялся несколько раз в случае недоступности посредника.Чтобы убедиться, что контейнер RabbitMQ запущен и работает (что я также подтвердил, просматривая журналы).
Что я делаю не так?Почему я не могу увидеть экземпляр rabbitMq из других контейнеров?
Спасибо за помощь!