如何在Docker容器中配置rabbitmq.config?

Ama*_*amp 6 rabbitmq docker docker-swarm-mode

我正在使用官方的RabbitMQ Docker镜像(https://hub.docker.com/_/rabbitmq/)

rabbitmq.config在运行后尝试编辑容器内的文件

docker exec -it <container-id> /bin/bash

但是,这似乎对容器中运行的rabbitmq服务器没有影响.由于Docker启动了一个全新的实例,因此重启容器显然没有帮助.

所以我假设配置rabbitmq.configDocker容器的唯一方法是在容器开始运行之前设置它,我可以部分地使用图像支持的环境变量.

遗憾的是,环境变量并不支持所有配置选项.举例来说,我想设置{auth_mechanisms, ['PLAIN', 'AMQPLAIN', 'EXTERNAL']}rabbitmq.config.

然后我找到了RABBITMQ_CONFIG_FILE环境变量,这应该允许我指向我想用作conifg文件的文件.但是,我试过以下没有运气:

docker service create --name rabbitmq --network rabbitnet \
-e RABBITMQ_ERLANG_COOKIE='mycookie' --hostname = "{{Service.Name}}{{.Task.Slot}}" \
--mount type=bind,source=/root/mounted,destination=/root \
-e RABBITMQ_CONFIG_FILE=/root/rabbitmq.config rabbitmq
Run Code Online (Sandbox Code Playgroud)

默认rabbitmq.config文件包含:

[ { rabbit, [ { loopback_users, [ ] } ] } ]
Run Code Online (Sandbox Code Playgroud)

一旦它开始,它就在容器中

配置rabbitmq.configDocker容器内部的最佳方法是什么?

Lui*_* E. 16

配置文件家住/etc/rabbitmq/rabbitmq.config所以如果你安装你自己的配置文件像这样的东西(我在这里使用泊坞窗,组成设置图像)

volumes:
- ./conf/myrabbit.conf:/etc/rabbitmq/rabbitmq.config
Run Code Online (Sandbox Code Playgroud)

应该这样做

  • 我正在尝试使用`COPY ./rabbitmq.config/etc/rabbitmq/rabbitmq.config`然后`CMD ["rabbitmq-server"]`将配置文件添加到我自己的图像中,但似乎我添加的文件被覆盖默认配置文件.可能是默认配置文件是由"rabbit-server"命令创建的 (3认同)
  • 对于旧的 erland conf -&gt; - ./conf/myrabbit.conf:/etc/rabbitmq/rabbitmq.config 对于新版本 -&gt; - ./conf/myrabbit.conf:/etc/rabbitmq/rabbitmq.conf (2认同)