在 Docker 中使用 RabbitMQ 删除容器
Dropping container with RabbitMQ in Docker
我尝试用 RabbitMQ 启动一个 Docker 容器,结果下载了镜像,但容器没有启动。我在日志中收到以下消息:
error: RABBITMQ_DEFAULT_PASS is set but deprecated
error: RABBITMQ_DEFAULT_USER is set but deprecated
error: RABBITMQ_DEFAULT_VHOST is set but deprecated
error: RABBITMQ_ERLANG_COOKIE is set but deprecated
error: deprecated environment variables detected
这个问题是最近出现的,在此之前一切正常并开始。
这是我的docker-组成兔子:
rabbit:
image: "rabbitmq:3-management"
hostname: "rabbit"
environment:
RABBITMQ_ERLANG_COOKIE: 'SWQOKODSQALRPCLNMEQGW'
RABBITMQ_DEFAULT_USER: 'user'
RABBITMQ_DEFAULT_PASS: 'bitnami'
RABBITMQ_DEFAULT_VHOST: '/'
ports:
- "15672:15672"
- "5672:5672"
labels:
NAME: "rabbitmq"
networks:
- postgres
您应该使用以下环境变量:
DEFAULT_VHOST=/
DEFAULT_USER=user1
DEFAULT_PASS=pass1
有关详细信息,请参阅 https://www.rabbitmq.com/configure.html。
或者使用其他版本的rabbitMQ比如3.8:
rabbitmq:3.8-management
行
image: "rabbitmq:3-management"
基本上(我认为)获得了 Rabbit 的最新稳定版本,即 3.9,它弃用了这些变量。如果你想继续使用最新版本的 rabbit,你必须使用一个配置文件。鉴于到目前为止您可能一直在使用 3.8,我想这比它的价值要多得多。您可以通过将行更改为:
来使用 3.8
image: "rabbitmq:3.8-management"
此版本中未弃用变量,不会引发这些错误。
最近更新了 RabbitMQ (3.9) 的最新稳定 docker 图像,官方图像页面显示:
As of RabbitMQ 3.9, all of the docker-specific variables listed below are deprecated and no longer used.
我已经通过以下方式解决了这个问题:
在 docker 撰写的同一文件夹中创建一个 rabbitmq.conf 文件
文件存在
按照 here 中的指南和命名约定将变量放入其中。类似于:
default_vhost = /
default_user = user
default_pass = bitnami
在 docker 撰写文件中,而不是 environment 部分放置 volumes 部分并挂载rabbitmq.conf 文件到正确的路径(取决于 OS,遵循 here)。对于 linux 容器,它将类似于:
rabbit:
image: "rabbitmq:3-management"
hostname: "rabbit"
volumes:
- "./rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf"
ports:
- "15672:15672"
- "5672:5672"
labels:
NAME: "rabbitmq"
networks:
- postgres
如果有人只使用 Dockerfile
,请将您的配置添加到同一文件夹中并将此行添加到您的 Dockerfile
:
COPY ./rabbitmq.conf /etc/rabbitmq/rabbitmq.conf
我尝试用 RabbitMQ 启动一个 Docker 容器,结果下载了镜像,但容器没有启动。我在日志中收到以下消息:
error: RABBITMQ_DEFAULT_PASS is set but deprecated
error: RABBITMQ_DEFAULT_USER is set but deprecated
error: RABBITMQ_DEFAULT_VHOST is set but deprecated
error: RABBITMQ_ERLANG_COOKIE is set but deprecated
error: deprecated environment variables detected
这个问题是最近出现的,在此之前一切正常并开始。
这是我的docker-组成兔子:
rabbit:
image: "rabbitmq:3-management"
hostname: "rabbit"
environment:
RABBITMQ_ERLANG_COOKIE: 'SWQOKODSQALRPCLNMEQGW'
RABBITMQ_DEFAULT_USER: 'user'
RABBITMQ_DEFAULT_PASS: 'bitnami'
RABBITMQ_DEFAULT_VHOST: '/'
ports:
- "15672:15672"
- "5672:5672"
labels:
NAME: "rabbitmq"
networks:
- postgres
您应该使用以下环境变量:
DEFAULT_VHOST=/
DEFAULT_USER=user1
DEFAULT_PASS=pass1
有关详细信息,请参阅 https://www.rabbitmq.com/configure.html。
或者使用其他版本的rabbitMQ比如3.8:
rabbitmq:3.8-management
行
image: "rabbitmq:3-management"
基本上(我认为)获得了 Rabbit 的最新稳定版本,即 3.9,它弃用了这些变量。如果你想继续使用最新版本的 rabbit,你必须使用一个配置文件。鉴于到目前为止您可能一直在使用 3.8,我想这比它的价值要多得多。您可以通过将行更改为:
来使用 3.8image: "rabbitmq:3.8-management"
此版本中未弃用变量,不会引发这些错误。
最近更新了 RabbitMQ (3.9) 的最新稳定 docker 图像,官方图像页面显示:
As of RabbitMQ 3.9, all of the docker-specific variables listed below are deprecated and no longer used.
我已经通过以下方式解决了这个问题:
在 docker 撰写的同一文件夹中创建一个 rabbitmq.conf 文件 文件存在
按照 here 中的指南和命名约定将变量放入其中。类似于:
default_vhost = / default_user = user default_pass = bitnami
在 docker 撰写文件中,而不是 environment 部分放置 volumes 部分并挂载rabbitmq.conf 文件到正确的路径(取决于 OS,遵循 here)。对于 linux 容器,它将类似于:
rabbit: image: "rabbitmq:3-management" hostname: "rabbit" volumes: - "./rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf" ports: - "15672:15672" - "5672:5672" labels: NAME: "rabbitmq" networks: - postgres
如果有人只使用 Dockerfile
,请将您的配置添加到同一文件夹中并将此行添加到您的 Dockerfile
:
COPY ./rabbitmq.conf /etc/rabbitmq/rabbitmq.conf