我的目標是建立與SSL支持,這是使用以下rabbitmq.config
文件,它駐留在主機的/etc/rabbitmq
路徑之前實現的RabbitMQ配置在rabbitmq.config SSL。使用RabbitMQ的搬運工圖像
現在我想能夠配置其他rabbitmq用戶和密碼比默認guest
guest
。
我使用的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
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變量或提到怎麼可以仍然以某種動態的方式(也許模板化的配置文件)定義新的用戶名和密碼的RabbitMQ礦rabbitmq.config
?
此解決方案的輸出等同於根本不編寫環境部分,因爲docker入口點正在使用這些來添加與來賓默認用戶不同的用戶。 – JavaSa
然後下一個選項是複製docker-entrypoint.sh並根據您的需要對其進行自定義,然後使用docker-compose中的卷映射來共享它以在加載圖像時覆蓋該文件。如果你想要,你可以選擇這種方法 –
如果你給環境變量,如上面提到的鏈接,而不是根據環境部分重新創建'rabbitmq.config'而不是覆蓋入口點。 – JavaSa