rabbitmq docker container .erlang.cookie 不是从 RABBITMQ_ERLANG_COOKIE 环境变量设置的

rai*_*isd 6 amazon-web-services rabbitmq docker

我正在尝试使用 aws 容器服务设置一个 rabbitmq 集群。我需要/var/lib/rabbitmq/.erlang.cookie在所有节点上都相同。因此,对于我的所有 rabbitmq 容器,当它们运行时,我传入了一个RABBITMQ_ERLANG_COOKIE环境变量,根据此处的文档https://hub.docker.com/_/rabbitmq/应写入/var/lib/rabbitmq/.erlang.cookie.

当我检查正在运行的容器时,我可以看到存在环境变量RABBITMQ_ERLANG_COOKIE=QOKWQHQKXXTBIEAOPWKE,但是当cat /var/lib/rabbitmq/.erlang.cookie我得到不同的值时AYMNAPKRPCPJVPFYAJZX

因此,所有rabbitmq 容器都不同.erlang.cookie,无法形成集群。

为什么没有设置来自环境变量的 cookie?我会在这里错过什么?

我正在使用 rabbitmq:3.6.9-alpine 图像。

小智 3

我在搜索非常相似的问题时遇到了这个线程,但我的环境变量是 ERLANG_COOKIE,在我更改为使用 RABBITMQ_ERLANG_COOKIE 后,它的工作就像一个魅力

这是我关于rabbitmq的docker-compose,${HOST}将被替换为.env文件中设置的值,该文件与docker-compose.yml位于同一文件夹中

rabbitmq:
  image: rabbitmq:3-management
  ports:
    - "15672:15672"
    - "25672:25672"
    - "5672:5672"
    - "4369:4369"
  environment:
    - RABBITMQ_ERLANG_COOKIE='takeMyCookies'
  hostname: "${HOST}"
Run Code Online (Sandbox Code Playgroud)

查看cookie值

root@prod-03:/# cat ~/.erlang.cookie
'takeMyCookies'
root@prod-03:/# cat /var/lib/rabbitmq/.erlang.cookie
'takeMyCookies'
Run Code Online (Sandbox Code Playgroud)