我想将“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
是否可以将该插件添加到上述安装中?
谢谢
我认为你应该使用这个插件创建你的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
另一种选择是使用 masstransit/rabbitmq,它会定期更新并包含插件。