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

标签 docker rabbitmq docker-swarm-mode

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

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

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

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

所以我假设唯一的配置方法 rabbitmq.config对于 Docker 容器,是在容器开始运行之前设置它,我可以使用镜像支持的环境变量来部分完成。

不幸的是,并非所有配置选项都受环境变量支持。例如,我想设置 {auth_mechanisms, ['PLAIN', 'AMQPLAIN', 'EXTERNAL']}rabbitmq.config .

然后我找到了RABBITMQ_CONFIG_FILE环境变量,它应该允许我指向我想用作我的配置文件的文件。但是,我尝试了以下方法,但没有成功:

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, [ ] } ] } ]

是容器启动后的内容

配置rabbitmq.config 的最佳方式是什么?在 Docker 容器中?

最佳答案

配置文件位于 /etc/rabbitmq/rabbitmq.config 所以如果你用这样的东西挂载你自己的配置文件(我在这里使用 docker-compose 来设置图像)

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

应该这样做。

如果您在将配置文件创建为目录时遇到问题,try absolute paths .

关于docker - 如何在 Docker 容器中配置 rabbitmq.config?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42003640/

相关文章:

selenium - 在zalenium中捕获音频

javascript - 如何使用 Docker 和 Angular 进行实时更改重新加载?

Docker 在 compose/swarm 模式下的使用

docker - docker-compose部署确保容器已安装在特定服务器上

docker - Docker日志/堆栈部署服务错误

sql-server - 无法从 AspNetCore 应用程序连接 Docker MsSql

networking - docker-compose:指定哪个接口(interface)将连接到每个网络(当有多个网络时)

python - 使用鼠兔的 start_consuming 方法中断线程

python - Rabbitmq 远程调用 Pika

java - 如何通过 Spring 将消息重新排队到 Rabbit MQ 队列的后端