如何在Docker容器中configurationrabbitmq.config?

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

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

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

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

所以我认为为Docker容器configurationrabbitmq.config的唯一方法是在容器开始运行之前对其进行设置,我可以部分地使用映像支持的环境variables。

不幸的是,并不是所有的configuration选项都被环境variables支持。 例如,我想在{auth_mechanisms, ['PLAIN', 'AMQPLAIN', 'EXTERNAL']}设置{auth_mechanisms, ['PLAIN', 'AMQPLAIN', 'EXTERNAL']}

然后我find了RABBITMQ_CONFIG_FILE环境variables,它应该允许我指向我想用作我的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 

默认的rabbitmq.config文件包含:

 [ { rabbit, [ { loopback_users, [ ] } ] } ] 

容器一旦启动就是什么东西

在Docker容器中configurationrabbitmq.config的最佳方法是什么?

configuration文件居住在/etc/rabbitmq/rabbitmq.config所以如果你挂载你自己的configuration文件(像我这样使用docker-compose来设置映像)

 volumes: - ./conf/myrabbit.conf:/etc/rabbitmq/rabbitmq.config 

应该这样做