2017-02-02 2 views
2

私はしかし、これはに影響を及ぼさないように見える、私はDockerコンテナー内でrabbitmq.configを構成する方法は?

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

を実行した後、容器内のrabbitmq.configファイルを編集しようとしました(https://hub.docker.com/_/rabbitmq/

公式のRabbitMQドッカーの画像を使用していますコンテナー内で実行されているrabbitmqサーバー。 Dockerがまったく新しいインスタンスを開始したので、コンテナを再起動すると明らかに助けになりませんでした。

Dockerコンテナにrabbitmq.configを設定する唯一の方法は、コンテナの実行が開始される前にそれを設定することでした。これは、画像のサポートされている環境変数を使用して部分的に行うことができました。

残念ながら、すべての設定オプションが環境変数でサポートされているわけではありません。たとえば、{auth_mechanisms, ['PLAIN', 'AMQPLAIN', 'EXTERNAL']}rabbitmq.configに設定したいとします。

私はRABBITMQ_CONFIG_FILEという環境変数を見つけました。私はconifgファイルとして使用したいファイルを指し示すべきです。しかし、私は運で次のことを試してみた:

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

は、容器の中に何があるかでありますDockerコンテナ内のrabbitmq.config

あなたはこのような何かを使用して独自の設定ファイルをマウントしている場合ので、(私はセットアップにここに画像をドッカ-構成を使用しています) /etc/rabbitmq/rabbitmq.config

答えて

7

設定ファイルの生活

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

それを

+1

中0ファイルが魅力を働きました。乾杯! – AmazingBergkamp

+1

Clever。ありがとう! – bcattle

+0

設定ファイルを 'COPY ./rabbitmq.config/etc/rabbitmq/rabbitmq.config'と' CMD ["rabbitmq-server"] 'で自分のイメージに追加しようとしていますが、デフォルトの設定ファイルによって上書きされます。 "rabbit-server"コマンドでデフォルトの設定ファイルが作成されている可能性があります –

0
を行うべきです

私は、次のbashスクリプトを使用してマウント設定でのRabbitMQを実行することができるよ:

#RabbitMQ props 
env=dev 
rabbitmq_name=dev_rabbitmq 
rabbitmq_port=5672 

#RabbitMQ container 
if [ "$(docker ps -aq -f name=${rabbitmq_name})" ]; then 
    echo Cleanup the existed ${rabbitmq_name} container 
    docker stop ${rabbitmq_name} && docker rm ${rabbitmq_name} 
    echo Create and start new ${rabbitmq_name} container 
    docker run --name ${rabbitmq_name} -d -p ${rabbitmq_port}:15672 -v $PWD/rabbitmq/${env}/data:/var/lib/rabbitmq:rw -v $PWD/rabbitmq/${env}/definitions.json:/opt/definitions.json:ro -v $PWD/rabbitmq/${env}/rabbitmq.config:/etc/rabbitmq/rabbitmq.config:ro rabbitmq:3-management 
else 
    echo Create and start new ${rabbitmq_name} container 
    docker run --name ${rabbitmq_name} -d -p ${rabbitmq_port}:15672 -v $PWD/rabbitmq/${env}/data:/var/lib/rabbitmq:rw -v $PWD/rabbitmq/${env}/definitions.json:/opt/definitions.json:ro -v $PWD/rabbitmq/${env}/rabbitmq.config:/etc/rabbitmq/rabbitmq.config:ro rabbitmq:3-management  
fi 

は、私はまた、次のを持っています私rabbitmq/dev DIR

definitions.json

{ 
     "rabbit_version": "3.7.3", 
     "users": [{ 
      "name": "welib", 
      "password_hash": "su55YoHBYdenGuMVUvMERIyUAqJoBKeknxYsGcixXf/C4rMp", 
      "hashing_algorithm": "rabbit_password_hashing_sha256", 
      "tags": "" 
     }, { 
      "name": "admin", 
      "password_hash": "x5RW/n1lq35QfY7jbJaUI+lgJsZp2Ioh6P8CGkPgW3sM2/86", 
      "hashing_algorithm": "rabbit_password_hashing_sha256", 
      "tags": "administrator" 
     }], 
     "vhosts": [{ 
      "name": "/" 
     }, { 
      "name": "dev" 
     }], 
     "permissions": [{ 
      "user": "welib", 
      "vhost": "dev", 
      "configure": ".*", 
      "write": ".*", 
      "read": ".*" 
     }, { 
      "user": "admin", 
      "vhost": "/", 
      "configure": ".*", 
      "write": ".*", 
      "read": ".*" 
     }], 
     "topic_permissions": [], 
     "parameters": [], 
     "global_parameters": [{ 
      "name": "cluster_name", 
      "value": "[email protected]" 
     }], 
     "policies": [], 
     "queues": [], 
     "exchanges": [], 
     "bindings": [] 
    } 

rabbitmq.config

[ 
    {rabbit, [ 
     {loopback_users, []}, 
     {vm_memory_high_watermark, 0.7}, 
     {vm_memory_high_watermark_paging_ratio, 0.8}, 
     {log_levels, [{channel, warning}, {connection, warning}, {federation, warning}, {mirroring, info}]}, 
     {heartbeat, 10} 
    ]}, 
    {rabbitmq_management, [ 
     {load_definitions, "/opt/definitions.json"} 
    ]} 
]. 
関連する問題