My 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
My 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
Однако, когда я пытаюсь выполнить docker-compose up
, я получаю следующую ошибку:
cannot rename /etc/rabbitmq/sedMaHqMa: Device or resource busy
Я попытался использовать старый формат файла конфигурации (rabbitmq.config), и он не дал мне эту ошибку, однако мне нужно использовать новый формат, потому что мне нужен пароль, который будет предоставлен во время запуска через env. переменные.
EDIT 20 февраля 2018 года
Вот список доступных в настоящее время переменных среды в изображении докеры Rabbitmq, и их достаточно для установки TLS для AMQP и HTTP ( API управления и веб-консоль)
Копирование их в случае нарушения связи:
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