Я пытаюсь использовать Docker с приложением.Кажется, все работает, кроме Rabbit MQ.Поэтому, чтобы создать контрольный пример, я сделал следующее:
Шаг 1 - Запуск за пределами Docker - работает как положено
1) Создайте простой ASP.NETКонсольное приложение Core 2.1:
using System;
using RabbitMQ.Client;
namespace DockerRabbitMQ
{
class Program
{
static void Main(string[] args)
{
RabbitMQConnect();
}
public static void RabbitMQConnect()
{
var factory = new ConnectionFactory
{
HostName = "localhost",
UserName = "guest",
Password = "guest"
};
var rabbit = factory.CreateConnection();
}
}
}
2) Установите RabbitMQ на локальном ПК и протестируйте его, перейдя по адресу: http://localhost:15672. Я вижу портал управления, как и ожидалось, поэтому он работает.
3) Запустите консольное приложение.Он запускается и завершается, как и ожидалось.
Шаг 2 - Запустите внутри Docker
1) Щелкните правой кнопкой мыши на Консольном приложении и выберите: Добавить / Поддержка оркестровки контейнера.Добавлены DOCKERFILE и docker-compose.
2) Добавьте следующее в Docker Compose:
rabbit:
image: rabbitmq:3-management-alpine
hostname: rabbit
ports:
- "15672:15672"
- "5672:5672"
3) Остановите службу Rabbit MQ, работающую на локальном ПК (служба была созданав шаге 1, часть 2)
4) Изменить код в шаге 1, часть 1, чтобы сказать:
HostName = "Rabbit",
5) Запустить Docker Compose в Visual Studio.Вот ошибка:
![enter image description here](https://i.stack.imgur.com/48NEB.png)
Я считаю, что мой вопрос похож на этот: RabbitMq отклоняет соединение при запуске в Docker .Почему я получаю сообщение об этой ошибке?
Обновление
Чтобы обеспечить запуск RabbitMQ до консольного приложения;Я изменю файл compose следующим образом:
depends_on:
- rabbitmq
Обновление 2
Я пытался следовать приведенным выше инструкциям, используя приложение MVC вместо консольного приложения (в шаге 1).Я помещаю код подключения в конструктор автозагрузки (только для тестирования) и вижу это:
![enter image description here](https://i.stack.imgur.com/Olhp6.png)
Почему я вижу ошибку и почемупытается подключиться к: 92.242.132.15:5672?Docker Compose для приложения MVC (и кролика mw) выглядит следующим образом:
version: '3.4'
services:
dockerrabbitmqmvc:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_HTTPS_PORT=44336
ports:
- "54258:80"
- "44336:443"
volumes:
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
rabbitmq:
image: rabbitmq:3-management-alpine
hostname: rabbit
ports:
- "15672:15672"
- "5672:5672"
expose:
- "15672"
- "5672"