RABBITMQ_ERLANG_COOKIE 被废弃后如何在“docker run”中传递 erlang.cookie

问题描述 投票:0回答:2

我想启动三个 RabbitMQ 容器,它们将连接到一个集群中。我想保持简单,而不是定义具有特定卷的复杂 Dockerfile。 这就是我现在正在做的事情:

docker network create rabbits
docker run -d --rm --net rabbits --hostname rabbit-1 --name rabbit-1 -p 8081:15672 -e RABBITMQ_ERLANG_COOKIE=ASDF rabbitmq:3.8-management
docker run -d --rm --net rabbits --hostname rabbit-2 --name rabbit-2 -p 8082:15672 -e RABBITMQ_ERLANG_COOKIE=ASDF rabbitmq:3.8-management
docker run -d --rm --net rabbits --hostname rabbit-3 --name rabbit-3 -p 8083:15672 -e RABBITMQ_ERLANG_COOKIE=ASDF rabbitmq:3.8-management

当我尝试使用以下命令告诉节点相互加入时,我收到一条错误消息:

docker exec -it rabbit-2 rabbitmqctl stop_app
docker exec -it rabbit-2 rabbitmqctl reset
docker exec -it rabbit-2 rabbitmqctl join_cluster rabbit@rabbit-1
docker exec -it rabbit-2 rabbitmqctl start_app
docker exec -it rabbit-2 rabbitmqctl cluster_status

这会导致:

RABBITMQ_ERLANG_COOKIE env variable support is deprecated and will be REMOVED in a future version. Use the $HOME/.erlang.cookie file or the --erlang-cookie switch instead.

但是我不知道如何通过这个开关。当我将其添加到 docker run 命令时,它不起作用。所以我想也许可以在 join_cluster 命令之后添加这个,但是 cookie 已经设置好了。

我需要如何更改 docker run 命令?

docker docker-compose rabbitmq docker-desktop rabbitmqctl
2个回答
1
投票

为了回答您和其他有关

RABBITMQ_ERLANG_COOKIE
的问题,我打开了这个问题:

https://github.com/rabbitmq/rabbitmq-server/issues/7262

当前您应该使用环境变量并忽略警告。

最佳实践是使用 docker compose 和基于官方 RabbitMQ 镜像的您自己的镜像:

https://github.com/lukebakken/docker-rabbitmq-cluster/blob/main/docker-compose.yml

https://github.com/lukebakken/docker-rabbitmq-cluster/blob/main/rmq/Dockerfile


1
投票

从版本 3.7.0 开始,RabbitMQ 中不再使用 RABBITMQ_ERLANG_COOKIE 环境变量。相反,您可以通过使用 docker run 命令中的 -e 选项并将 RABBITMQ_ERLANG_COOKIE 环境变量设置为所需的值来设置 Erlang cookie 值。这是一个例子:

docker run -d --namerabbitmq -e RABBITMQ_ERLANG_COOKIE='your_cookie_value'rabbitmq:3

或者,您可以将 Erlang cookie 存储在文件中,并将其作为卷安装到容器中。例如:

使用您想要的 cookie 值创建一个名为 erlang.cookie 的文件

echo 'your_cookie_value' > erlang.cookie

启动RabbitMQ容器,挂载erlang.cookie文件

docker run -d --namerabbitmq -v $(pwd)/erlang.cookie:/var/lib/rabbitmq/.erlang.cookierabbitmq:3

© www.soinside.com 2019 - 2024. All rights reserved.