在 Docker 中使用 RabbitMQ 删除容器

Ser*_*pov 10 rabbitmq 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
Run Code Online (Sandbox Code Playgroud)

最近出现这个问题,在此之前一切正常并开始。

这是我的 docker-compose 兔子:

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
Run Code Online (Sandbox Code Playgroud)

Rah*_*man 9

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

DEFAULT_VHOST=/
DEFAULT_USER=user1
DEFAULT_PASS=pass1
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅https://www.rabbitmq.com/configure.html

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

rabbitmq:3.8-management
Run Code Online (Sandbox Code Playgroud)


小智 8

线

image: "rabbitmq:3-management"
Run Code Online (Sandbox Code Playgroud)

基本上(我认为)获得了 Rabbit 的最新稳定版本,即 3.9,它已弃用这些变量。如果你想继续使用最新版本的rabbit,你必须使用一个配置文件。看到到目前为止您可能一直在使用 3.8,我想这比它的价值要多。您可以通过将行更改为 3.8 来代替:

image: "rabbitmq:3.8-management"
Run Code Online (Sandbox Code Playgroud)

此版本中不弃用这些变量,并且不会抛出这些错误。


Mam*_*eza 6

RabbitMQ (3.9) 的最新稳定版 docker 镜像最近更新了,官方镜像页面说:

As of RabbitMQ 3.9, all of the docker-specific variables listed below are deprecated and no longer used.
Run Code Online (Sandbox Code Playgroud)

我已经通过以下方式解决了这个问题:

  1. 在 docker compose 文件所在的同一文件夹中创建一个 rabbitmq.conf 文件

  2. 按照此处的准则和命名约定将变量放在那里。就像是:

    default_vhost = /
    default_user = user
    default_pass = bitnami
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在 docker compose 文件中,而不是环境部分放置一个部分并将 rabbitmq.conf 文件安装到正确的路径(取决于操作系统,请按照此处操作)。对于 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
    
    Run Code Online (Sandbox Code Playgroud)