【发布时间】:2018-01-11 02:50:50
【问题描述】:
我的目标是设置 rabbitmq 支持 ssl,这是以前使用下面的 rabbitmq.config 文件实现的,该文件位于主机的 /etc/rabbitmq 路径中。
现在我希望能够配置其他 rabbitmq 用户和密码而不是默认值 guest guest。
我正在使用具有以下 docker-compose 配置的 rabbitmq docker 映像:
version: '2'
services:
rabbitmq:
build: ./rabbitmq
ports:
- "8181:8181"
expose:
- "15672"
- "8181"
volumes:
- /etc/rabbitmq:/etc/rabbitmq
environment:
RABBITMQ_DEFAULT_USER: user123
RABBITMQ_DEFAULT_PASS: 1234
Rabbitmq 配置:
[{rabbit,
[
{loopback_users, []},
{heartbeat,0},
{ssl_listeners, [8181]},
{ssl_options, [{cacertfile, "/etc/rabbitmq/ca/cacert.pem"},
{certfile, "/etc/rabbitmq/server/cert.pem"},
{keyfile, "/etc/rabbitmq/server/key.pem"},
{verify,verify_none},
{fail_if_no_peer_cert,false}]}
]}
].
Rabbitmq dockerfile:
from rabbitmq:management
#and some certificate generating logic
我注意到,一旦添加了environment 部分,当前的rabbitmq.config 文件就会被docker-entrypoint.sh file 自动生成的配置覆盖。
为了使用证书构建配置,我找到了可以执行此操作的环境变量(查看 here)。
但是没有找到任何参考来定义 ssl_listeners 部分及其端口,如下所示 rabbitmq.config
我的问题是:如何使用 env 变量创建如下所述的确切配置 OR 我怎样才能保留我的 rabbitmq.config 使用新用户定义 rabbitmq 和以某种动态方式输入密码(可能是配置文件的模板)?
【问题讨论】:
标签: bash ssl docker rabbitmq docker-compose