【问题标题】:Docker Container with RabbitMQ crashing带有 RabbitMQ 的 Docker 容器崩溃
【发布时间】:2021-10-08 22:35:18
【问题描述】:

首先,这似乎与此处发布的类似问题:Dropping container with RabbitMQ in Docker

但是,几天后,该主题似乎不活跃了,我很想就唯一提供的答案提出问题,但我的声誉还不够高,无法这样做。我还想尝试提供更多细节。基本上,我有一个公共托管的服务器,我最近尝试将一些更改推送到,但 gitlab 部署失败。就后端而言,更改非常小(实际上只是一个添加的变量),当我尝试撤消更改时,我从 docker 收到了同样的错误:

error: RABBITMQ_DEFAULT_PASS is set but deprecated
error: RABBITMQ_DEFAULT_USER is set but deprecated
error: RABBITMQ_ERLANG_COOKIE is set but deprecated
error: deprecated environment variables detected

我永远无法在本地重现此内容。似乎在重新启动或重新编译时,RabbitMQ 已经开始在服务器上给出这些错误。我不熟悉 RabbitMQ,但我的猜测是他们最近将其从警告切换为错误,从而导致我的服务器在重新部署时崩溃。我的 docker-compose.yml 的 rabbit 部分:

rabbitmq:
image: rabbitmq:3-management
environment:
  RABBITMQ_ERLANG_COOKIE: secret
  RABBITMQ_DEFAULT_USER: [REDACTED]
  RABBITMQ_DEFAULT_PASS: [REDACTED]
networks:
  - backend
ports:
  - 15672:15672
  - 5672:5672

对其他线程的回复建议使用这些变量:

DEFAULT_VHOST=/
DEFAULT_USER=
DEFAULT_PASS=

并提供此链接:https://www.rabbitmq.com/configure.html

但是这个答案意味着您只需将不推荐使用的变量替换为他在 docker compose 中列出的变量。他的链接没有对此进行澄清,而是提供了一个不同的解决方案,即使用 rabbitmq.conf 文件。此外,在 docker compose 中使用它们代替旧变量会导致本地登录错误:

兔子mq_1 | PLAIN 登录被拒绝:用户 '' 尝试使用空白密码登录, 这是内部 authN 后端禁止的。要使用基于 TLS/x509 证书的身份验证,请参阅 rabbitmq_auth_mechanism_ssl 插件并将客户端配置为使用 EXTERNAL 身份验证机制。或者将用户的密码更改为非空白。

他是从哪里得出这个答案的,真的就像换成一组未弃用的变量一样简单吗?

如果 docker 需要一个 rabbitmq.conf 来编译,我应该把文件放在哪里?我在本地没有,网站提到 /etc/rabbitmq/rabbitmq.conf,但似乎只有在 docker 中没有运行时才会出现这种情况。我在本地也没有这个文件,docker运行良好。

RABBITMQ_ERLANG_COOKIE 怎么样?该网站似乎没有显示替代方案,响应者也没有。

还有一种方法可以单独使用 docker-compose 运行兔子 docker 吗?或者甚至是一种强制允许同时使用不推荐使用的变量的方法,以便我的服务器再次运行?

我想提供更多信息,但我不确定在不冒分享敏感信息的风险的情况下还可以分享什么。请让我知道其他信息可能有用

【问题讨论】:

    标签: docker docker-compose rabbitmq


    【解决方案1】:

    您应该使用以下环境变量:

    DEFAULT_VHOST=/
    DEFAULT_USER=user1
    DEFAULT_PASS=pass1
    

    请参阅https://www.rabbitmq.com/configure.html 了解更多信息。

    或者使用其他版本的rabbitMQ,比如3.8:

    rabbitmq:3.8-management
    

    【讨论】:

      【解决方案2】:

      我找到了解决方案。 Rabbitmq 3.9 版确实弃用了这些变量,image: rabbitmq:3-management 行导致它抢占了 3.9 版。我将线路改为image: rabbitmq:3.8-management,效果很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-23
        • 1970-01-01
        • 2019-01-25
        • 2017-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多