使用rabbitmq docker镜像在rabbitmq.config中configurationssl
我的目标是用ssl支持来设置rabbitmq,以前使用位于主机的/etc/rabbitmq
path下的rabbitmq.config
文件来实现。
现在我想能够configuration其他的rabbitmq用户和密码比默认的guest
guest
。
我正在使用以下docker-composeconfiguration的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
Rabbitmqconfiguration :
[{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文件自动生成configuration。
对于使用证书构buildconfiguration,我发现可以做到这一点的环境variables(看这里 )。 但是没有find任何有关使用其端口定义ssl_listeners
部分的参考,如下面的rabbitmq.config
我的问题是 :如何使用envvariables创build如下所述的精确configuration? 或者我怎样才能保持与我的rabbitmq.config
定义rabbitmq与新的用户和密码在一些dynamic的方式(也许模板configuration文件)?
尝试这个
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
这将覆盖docker-entrpoint
并运行rabbitmq服务器。 现在./docker-entrypoint.sh
设置了某些环境variables。 你的情况可能需要。 所以要确保你有所需要的一切