相关疑难解决方法(0)

如何在启动时在RabbitMQ中创建队列

我正在尝试在 docker 容器内启动 RMQ,使用预先创建的 queue qwer

在此之前,我使用的是简单docker-compose.yml文件:

rabbit:
    image: rabbitmq:management-alpine
    environment:
      RABBITMQ_DEFAULT_USER: guest
      RABBITMQ_DEFAULT_PASS: guest
Run Code Online (Sandbox Code Playgroud)

它工作得很好,只是它在开始时没有预先创建队列。现在我已经切换到自定义图像,如下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
Run Code Online (Sandbox Code Playgroud)

rabbitmq.confv3.7+ sysctl 样式的配置在哪里,有一行:

management.load_definitions = /etc/rabbitmq/definitions.json
Run Code Online (Sandbox Code Playgroud)

definitions.json包含尝试创建队列:

{
    "vhosts":[
        {"name":"/"}
    ],
    "queues":[
        {"name":"qwer","vhost":"/","durable":true,"auto_delete":false,"arguments":{}}
    ]
}
Run Code Online (Sandbox Code Playgroud)

现在它开始拒绝登录:

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
Run Code Online (Sandbox Code Playgroud)

本以为任务有些简单,但是rabbit本身的配置过程是最复杂的任务,文档也有些不清楚。

即使经过 4 天的试验和谷歌搜索,我也无法弄清楚它应该如何工作。

你能帮我吗,如何编写配置文件,以创建一个队列并保留连接和与之交谈的能力?

rabbitmq docker

14
推荐指数
3
解决办法
8217
查看次数

标签 统计

docker ×1

rabbitmq ×1