使用rabbitmq docker image

时间:2017-08-03 13:10:48

标签: bash ssl docker rabbitmq docker-compose

我的目标是使用ssl支持设置rabbitmq,这是先前使用rabbitmq.config文件下面的/etc/rabbitmq文件实现的,该文件位于主机的guest路径中。

现在我希望能够配置其他rabbitmq用户和密码,而不是默认guest 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

我正在使用带有docker-compose配置的rabbitmq docker image:

[{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 config

from rabbitmq:management

#and some certificate generating logic

Rabbitmq dockerfile

environment

我注意到,在添加rabbitmq.config部分之后,当前的ssl_listeners文件会被docker-entrypoint.sh file覆盖自动生成的配置。

对于使用证书构建配置,我找到了可以执行此操作的环境变量(查看here)。 但是,没有找到任何关于使用其端口定义rabbitmq.config部分的参考,如下面rabbitmq.config所示

我的问题是:如何使用env变量创建如下所述的确切配置我如何与我的A一起使用new 0定义rabbitmq用户和密码以某种动态方式(可能模板化配置文件)?

1 个答案:

答案 0 :(得分:0)

试试这个

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也设置了某些环境变量。在您的情况下可能需要哪些。所以要确保你拥有所需的一切