У меня есть док-контейнер, который запускает скрипт на python. Скрипт снабжен URL-адресом AMQP, который Пика использует в качестве pika.URLParameters для BlockingConnection. Когда я запускаю скрипт на моем компьютере, он работает нормально. Так как я его докертизировал и проверил журналы контейнера, я увидел, что сценарий зависает при попытке подключения. Вот код, который я использую в сценарии:
AMQP_URL = __prefix__ + __username__ + ":" + __password__ + __virtual__host + session
("The programm hangs here")
connection = pika.BlockingConnection(pika.URLParameters(AMQP_URL))
channel = connection.channel()
channel.exchange_declare(
exchange = "tmp.topic_2",
exchange_type = "topic"
)
result = channel.queue_declare(exclusive = True)
queue_name = result.method.queue
channel.queue_bind(
exchange = "amq.topic",
queue = queue_name,
routing_key = "ui.#"
)
channel.basic_consume(
UiCallback,
queue= queue_name,
no_ack=True
)
channel.start_consuming()
Я включил Пика в требования. Интересно, в чем проблема:
Может быть, контейнер не может получить доступ к сети? Может быть, мне нужно настроить сервер rabbitmq в этом или другом контейнере?
Спасибо за вашу помощь