在 docker-compose 文件中提供rabbitmq.conf会给出“sed:无法重命名/etc/rabbitmq/sedMaHqMa:设备或资源繁忙”

2024-04-20

我的 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

我的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 提供密码。变量。

编辑 2018 年 2 月 20 日

这里有一个list https://github.com/docker-library/rabbitmq/issues/138#issuecomment-350081900Rabbitmq 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

这似乎是当前rabbitmq的问题 Dockerfile。特别是sed命令似乎无法在映射为卷的配置文件上正常工作。然而,当你可以控制你的rabbitmq.conf无论如何,为什么不在此文件中包含默认用户和密码

default_user = admin
default_pass = YourStrongPasswort

and removeRABBITMQ_DEFAULT_USER 和 RABBITMQ_DEFAULT_PASS 不在您的撰写文件中。 这可能是最快的解决方法。刚刚测试,对我有用(官方rabbitmq:3.7-管理)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 docker-compose 文件中提供rabbitmq.conf会给出“sed:无法重命名/etc/rabbitmq/sedMaHqMa:设备或资源繁忙” 的相关文章

随机推荐