Я пытаюсь подключить веб-приложение, развернутое из одного контейнера, к rabbitmq, развернутое в другом контейнере.
Полагаясь на это Подключение к контейнеру RabbitMQ с помощью docker -compose , я создал следующую docker -композицию:
version: '3'
services:
webapp:
container_name: chat
build:
context: .
depends_on:
- broker
links:
- broker
ports:
- "8080:8080"
broker:
container_name: rabbit_chat
image: rabbitmq:3-management
ports:
- "5672:5672"
- "15672:15672"
healthcheck:
test: ["CMD", "curl", "-f", "http://broker:15672"]
interval: 30s
timeout: 10s
retries: 5
webapp - это сервис веб-приложения, в котором я прописываю следующие свойства rabbitmq:
host = broker
port = 15672
login = guest
password = guest
I изменил 'broker' в качестве хоста, так как в документации рекомендуется подключать контейнеры по умолчанию - net, используя имя сервиса в docker -compose. Также я попытался использовать "localhost" в качестве хоста для подключения.
И это не работает.
Дополнительно, проверяя контейнер "rabbit_chat", я вижу в выводе:
"Log": [
{
"Start": "2020-04-11T14:54:25.0988242Z",
"End": "2020-04-11T14:54:25.2920557Z",
"ExitCode": -1,
"Output": "OCI runtime exec failed: exec failed: container_linux.go:346: starting container process caused \"exec: \\\"curl\\\": executable file not found in $PATH\": unknown"
}
Также я попытался соединить их по мостовой сети. В этом случае я использовал IP брокер-контейнера в качестве хоста для запросов. И это не работает. Когда я подключаю свое приложение с rabbitMQ на хосте (без контейнеров), оно работает правильно ... Итак, я запутался ...
docker ps результат:
a53833fb96c2 chat_webapp "catalina.sh run" About an hour ago Up About an hour 0.0.0.0:8080->8080/tcp chat
696cbafbd38b rabbitmq "docker-entrypoint.s…" About an hour ago Up About an hour 4369/tcp, 5671-5672/tcp, 15672/tcp, 25672/tcp rabbit_chat
Inside rabbit_chat- контейнер отправляю запрос (webapp: 8080) успешно. Но когда я отправляю "curl broker: 5672 --output -" внутри chat-контейнера, я получаю: "curl: (56) Ошибка Recv: сброс соединения по пиру"
Внутри rabbit_chat-container я запускаю "ncat -v - listen 5672 ". И получите "Ncat: bind to ::: 5672: адрес уже используется. ВЫЙТИ.