【发布时间】:2020-02-04 13:55:17
【问题描述】:
我正在尝试在 docker 容器中启动 RMQ,并使用预先创建的队列 @987654321@。
在此之前,我使用的是简单的docker-compose.yml 文件:
rabbit:
image: rabbitmq:management-alpine
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
它工作得很好,只是它在开始时没有预先创建队列。
现在我已经切换到自定义图像,并关注Dockerfile:
FROM rabbitmq:management-alpine
ADD rabbitmq.conf /etc/rabbitmq/
ADD definitions.json /etc/rabbitmq/
RUN chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.conf /etc/rabbitmq/definitions.json
rabbitmq.conf 是 v3.7+ sysctl 样式的配置,其中行:
management.load_definitions = /etc/rabbitmq/definitions.json
并且definitions.json 包含创建队列的尝试:
{
"vhosts":[
{"name":"/"}
],
"queues":[
{"name":"qwer","vhost":"/","durable":true,"auto_delete":false,"arguments":{}}
]
}
现在开始拒绝登录:
Error on AMQP connection <0.660.0> (172.18.0.6:48916 -> 172.18.0.10:5672, state: starting):
PLAIN login refused: user 'guest' - invalid credentials
本以为任务有些简单,但rabbit本身的配置过程是最复杂的任务,文档有些不清楚。
我无法弄清楚它应该如何工作,即使经过 4 天的试验和谷歌搜索..
您能帮我吗,如何编写配置文件,以创建队列并保留与其连接和交谈的能力?
【问题讨论】: