我有以下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能够毫无问题地连接到messages.bus(RabbitMQ)。
连接字符串如下所示:
"EventBus": {
"ConnectionString": "amqp://user:user@messaging.bus:5672/test"
},
当我将图像推送到Azure容器注册表并尝试在Azure Web应用程序中将其用于容器时,reporting.service容器中将引发以下异常:
RabbitMQ.Client.Exceptions.BrokerUnreachableException:无 指定的端点可达---> System.AggregateException:一个 或更多错误发生。 (连接失败)---> RabbitMQ.Client.Exceptions.ConnectFailureException:连接失败 ---> System.Net.Internals.SocketExceptionFactory + ExtendedSocketException: 没有这样的设备或地址
仅供参考,在连接到RabbitMQ时,我在report.service中实现了Polly重试策略,以便在代理不可用的情况下多次执行代码。为了确保RabbitMQ容器已启动并正在运行(我确认还查看了日志)。
我做错了什么?为什么我无法从其他容器中看到RabbitMq实例?
感谢您的帮助!