我使用的是官方RabbitMQ Docker图像(https://hub.docker.com/_/rabbitmq/)
我尝试过在运行后编辑容器内的rabbitmq.config
文件docker exec -it <container-id> /bin/bash
然而,这似乎对容器中运行的rabbitmq服务器没有影响。重新启动容器显然也没有帮助,因为Docker启动了一个全新的示例。
因此,我假设为Docker容器配置rabbitmq.config
的唯一方法是在容器开始运行之前对其进行设置,我可以使用映像支持的环境变量部分地完成这一点。
不幸的是,并不是所有的配置选项都受环境变量的支持。例如,我想在rabbitmq.config
中设置{auth_mechanisms, ['PLAIN', 'AMQPLAIN', 'EXTERNAL']}
。
然后我找到了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
默认的rabbitmq.config
文件包含:
[ { rabbit, [ { loopback_users, [ ] } ] } ]
就是容器里的东西
在Docker容器中配置rabbitmq.config
的最佳方法是什么?
2条答案
按热度按时间ztyzrc3y1#
配置文件位于
/etc/rabbitmq/rabbitmq.config
中,因此如果您使用类似以下内容挂载自己的配置文件(我在这里使用docker-compose来设置映像)这样就行了。
如果您在将配置文件创建为目录try absolute paths时遇到问题。
ozxc1zmp2#
我可以使用下面的
bash
脚本在已挂载的配置下运行RabbitMQ:我的
rabbitmq/dev
目录中还有以下config
文件definitions.json
rabbitmq.config