Подключитесь к RabbitMQ в docker -контейнере из другого контейнера - PullRequest
1 голос
/ 11 апреля 2020

Я пытаюсь подключить веб-приложение, развернутое из одного контейнера, к 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: адрес уже используется. ВЫЙТИ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...