Получение «не удалось разрешить имя хоста брокера» при попытке подключиться к rabbitmq в другом контейнере docker

#docker #rabbitmq #amqp #nameko

Вопрос:

Я часами искал, как подключиться к внешнему контейнеру docker, работающему под управлением RabbitMQ.

Я пытаюсь запустить несколько сервисов с помощью Nameko, для которых требуется RabbitMQ. Я запустил свой контейнер RabbitMQ, используя следующую команду:

 docker run -d -p 15672:15672 -p 5672:5672 --hostname my-rabbit --name rabbit-container rabbitmq:3-management
 

Я создал конфигурационный файл yaml под названием config.yaml с этим внутри:

 AMQP_URI: 'pyamqp://guest:guest@my-rabbit:5672'
 

Я запускаю контейнер rabbit и контейнер Nameko и выполняю следующую команду в командной строке контейнера Nameko:

 nameko shell --config config.yaml
 

Я получаю следующую ошибку:

 OSError: failed to resolve broker hostname
 

Докер, RabbitMQ и Nameko-все это новые технологии для меня, поэтому я не уверен, что делаю неправильно. Пожалуйста, дайте мне знать, если увидите что-нибудь, что бросается в глаза.

Ответ №1:

Я начинаю свой кролик с докера-сочиняю:

 version: "3"
services:
  rabbit:
    container_name: rabbitmq
    image: rabbitmq:3.7-management
    ports:
        - "5672:5672"
        - "15672:15672" # Exposing RabbitMQ web management on different port for convenience
    restart: always
 

и конфигурация.yaml:

 AMQP_URI: amqp://guest:guest@$localhost:5672/