Kir*_* G. 15 config rabbitmq docker-compose
我的docker-compose看起来像这样:
version: '3.2'
services:
mq:
hostname: ${HOST_NAME}
ports:
- "5671:5671"
- "5672:5672"
- "15671:15671"
- "15672:15672"
environment:
- RABBITMQ_DEFAULT_USER=${USER}
- RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS}
volumes:
- ${CACERT_PEM_FILE}:/etc/rabbitmq/certs/cacert.pem
- ${CERT_PEM_FILE}:/etc/rabbitmq/certs/cert.pem
- ${KEY_PEM_FILE}:/etc/rabbitmq/certs/key.pem
- ${MQ_CONFIG_FILE}:/etc/rabbitmq/rabbitmq.conf
image: rabbitmq:3-management
Run Code Online (Sandbox Code Playgroud)
我的rabbitmq.conf看起来像这样:
listeners.tcp.default = 5672
listeners.ssl.default = 5671
ssl_options.cacertfile = /etc/rabbitmq/certs/cacert.pem
ssl_options.certfile = /etc/rabbitmq/certs/cert.pem
ssl_options.keyfile = /etc/rabbitmq/certs/key.pem
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = false
ssl_options.versions.1 = tlsv1.2
ssl_options.versions.2 = tlsv1.1
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试这样做时,docker-compose up我收到以下错误:
cannot rename /etc/rabbitmq/sedMaHqMa: Device or resource busy
我尝试使用旧格式的配置文件(rabbitmq.config)并且它没有给我这个错误,但是我需要使用新格式,因为我需要在启动期间通过env提供密码.变量.
编辑2018年2月20日
以下是Rabbitmq docker映像中当前可用环境变量的列表,它们足以为AMQP和HTTP(管理API和Web控制台)设置TLS
复制它们以防链接断开:
RABBITMQ_DEFAULT_PASS
RABBITMQ_DEFAULT_USER
RABBITMQ_DEFAULT_VHOST
RABBITMQ_ERLANG_COOKIE
RABBITMQ_HIPE_COMPILE
RABBITMQ_MANAGEMENT_SSL_CACERTFILE
RABBITMQ_MANAGEMENT_SSL_CERTFILE
RABBITMQ_MANAGEMENT_SSL_DEPTH
RABBITMQ_MANAGEMENT_SSL_FAIL_IF_NO_PEER_CERT
RABBITMQ_MANAGEMENT_SSL_KEYFILE
RABBITMQ_MANAGEMENT_SSL_VERIFY
RABBITMQ_SSL_CACERTFILE
RABBITMQ_SSL_CERTFILE
RABBITMQ_SSL_DEPTH
RABBITMQ_SSL_FAIL_IF_NO_PEER_CERT
RABBITMQ_SSL_KEYFILE
RABBITMQ_SSL_VERIFY
RABBITMQ_VM_MEMORY_HIGH_WATERMARK
Run Code Online (Sandbox Code Playgroud)
aho*_*ich 17
这似乎是当前rabbitmq Dockerfile的一个问题.特别是sed命令似乎无法在映射为卷的configfile上正常工作.但是,由于您rabbitmq.conf无论如何都可以控制,为什么不在此文件中包含默认用户和密码
default_user = admin
default_pass = YourStrongPasswort
Run Code Online (Sandbox Code Playgroud)
并从您的撰写文件中删除 RABBITMQ_DEFAULT_USER和RABBITMQ_DEFAULT_PASS.这可能是最快的解决方法.刚刚测试过,适用于我(官方rabbitmq:3.7-管理).
| 归档时间: |
|
| 查看次数: |
1910 次 |
| 最近记录: |