【发布时间】: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