Jav*_*aSa 6 bash ssl rabbitmq docker docker-compose
我的目标是使用 ssl 支持设置 rabbitmq,这是以前使用以下rabbitmq.config文件实现的,该文件位于主机的/etc/rabbitmq路径中。
现在我希望能够配置其他 rabbitmq 用户和密码而不是 defaults 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
Run Code Online (Sandbox Code Playgroud)
RabbitMQ 配置:
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
Run Code Online (Sandbox Code Playgroud)
Rabbitmq dockerfile:
from rabbitmq:management
#and some certificate generating logic
Run Code Online (Sandbox Code Playgroud)
我注意到,一旦添加environment部分,当前rabbitmq.config文件可能被docker-entrypoint.sh 文件自动生成的配置覆盖。
为了使用证书构建配置,我找到了可以执行此操作的环境变量(查看此处)。但是没有找到任何ssl_listeners用它的端口定义部分的参考,如下所示rabbitmq.config
我的问题是:如何使用 env 变量创建如下所述的确切配置,或者如何rabbitmq.config以某种动态方式使用新用户和密码定义rabbitmq(可能是模板化配置文件)?
尝试这个
version: '2'
services:
rabbitmq:
build: ./rabbitmq
ports:
- "8181:8181"
expose:
- "15672"
- "8181"
volumes:
- /etc/rabbitmq:/etc/rabbitmq
command: rabbitmq-server
entrypoint: ""
environment:
RABBITMQ_DEFAULT_USER: user123
RABBITMQ_DEFAULT_PASS: 1234
Run Code Online (Sandbox Code Playgroud)
这将覆盖docker-entrpoint并仅运行rabbitmq服务器。现在./docker-entrypoint.sh还设置了某些环境变量。您的情况可能需要这些。所以为了确保你拥有所需的一切