如何将rabbitmq_delayed_message_exchange插件添加到运行docker的RabbitMQ

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

我想将“rabbitmq_delayed_message_exchange”插件添加到我的 docker 安装中。 另外,我希望插件在重新启动 RabbitMQ 容器后保留在那里。

我使用的安装脚本是:

docker run -d -h docker01.docker                               \
       --add-host=docker01.docker:192.168.1.11                \
       --name rabbit                                            \
       -p "4370:4370"                                           \
       -p "5672:5672"                                           \
       -p "15672:15672"                                         \
       -p "25672:25672"                                         \
       -p "35197:35197"                                         \
       -e "RABBITMQ_USE_LONGNAME=true"                          \
       -e "ERL_EPMD_PORT=4370"                                    \
       -e RABBITMQ_ERLANG_COOKIE="rabbitcookie"                     \
       -e RABBITMQ_NODENAME="master"                             \
       -e "RABBITMQ_LOGS=/var/log/rabbitmq/rabbit.log"          \
       -v /data/rabbitmq:/var/lib/rabbitmq                                 \
       -v /data/rabbitmq/logs:/var/log/rabbitmq                             \
       rabbitmq:3.6.6-management

是否可以将该插件添加到上述安装中?

谢谢

docker rabbitmq
2个回答
1
投票

我认为你应该使用这个插件创建你的rabbitmq图像才可以使用。

我找到了这个 repo [1],其中包含一个 dockerfile 来构建镜像。 (我有一个问题,因为新版本的名字前面有 v,注意这个事实)

这是我基于此存储库创建的 dockerfile [1]

ARG PLUGIN_VERSION=3.12.0
ARG BASE_VERSION=3.12

FROM ubuntu:20.04 AS builder

ARG PLUGIN_VERSION

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y curl
RUN mkdir -p /plugins && \
    curl -fsSL \
    -o "/plugins/rabbitmq_delayed_message_exchange-${PLUGIN_VERSION}.ez" \
    https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v${PLUGIN_VERSION}/rabbitmq_delayed_message_exchange-${PLUGIN_VERSION}.ez

FROM rabbitmq:${BASE_VERSION}-management-alpine

ARG PLUGIN_VERSION

COPY --from=builder --chown=rabbitmq:rabbitmq \
    /plugins/rabbitmq_delayed_message_exchange-${PLUGIN_VERSION}.ez \
    $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-${PLUGIN_VERSION}.ez

RUN rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange

[1] https://github.com/heidiks/rabbitmq-delayed-message-exchange


0
投票

另一种选择是使用 masstransit/rabbitmq,它会定期更新并包含插件。

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