如何将插件添加到RabbitMQ docker映像?

如何将插件添加到RabbitMQ docker映像?,docker,rabbitmq,Docker,Rabbitmq,我使用的是来自的rabbitmq:3-management,但是它缺少一个我需要的插件rabbitmq\u delayed\u message\u exchange 如果该插件在图像中不可用,如何启用该插件?只需更新接受的答案即可。您可以将下载的插件复制到rabbitmq映像中并安装它 FROM rabbitmq:3.7-management RUN apt-get update && \ apt-get install -y curl unzip RUN curl http

我使用的是来自的
rabbitmq:3-management
,但是它缺少一个我需要的插件
rabbitmq\u delayed\u message\u exchange


如果该插件在图像中不可用,如何启用该插件?

只需更新接受的答案即可。您可以将下载的插件复制到rabbitmq映像中并安装它

FROM rabbitmq:3.7-management

RUN apt-get update && \
apt-get install -y curl unzip

RUN curl https://dl.bintray.com/rabbitmq/community-plugins/3.7.x/rabbitmq_delayed_message_exchange/rabbitmq_delayed_message_exchange-20171201-3.7.x.zip > rabbitmq_delayed_message_exchange-20171201-3.7.x.zip && \
unzip rabbitmq_delayed_message_exchange-20171201-3.7.x.zip && \
rm -f rabbitmq_delayed_message_exchange-20171201-3.7.x.zip && \
mv rabbitmq_delayed_message_exchange-20171201-3.7.x.ez plugins/

RUN rabbitmq-plugins enable rabbitmq_delayed_message_exchange
插件下载链接:

1。准备自定义图像:

docker-compose up
Dockerfile

docker-compose.yml

2。打造形象

docker build -t rabbitmq-custom .
3。运行docker编写器:

docker-compose up
据英国《每日邮报》报道,似乎还有第二种选择尚未被提及。 我觉得被接受的答案是最好的解决方案,因为它允许更多的调整,但人们可能更喜欢另一种方法:

启用插件 [接受答案…]

您还可以在
/etc/rabbitmq/enabled_plugins
上挂载一个文件,其内容为以句点结尾的原子的erlang列表。

示例
已启用\u插件

[rabbitmq_federation_management,rabbitmq_management,rabbitmq_mqtt,rabbitmq_stomp].

免责声明:我还没有尝试过。

如果您已经有一个正在运行的容器,而不是简单地运行

docker exec-容器bash的it名称

在我的情况下,我需要启用rabbitmq\u jms\u topic\u exchange

docker build -t rabbitmq-custom .
rabbitmq插件支持rabbitmq\u jms\u主题\u交换


您是否考虑过以
rabbimq:3-management
为基础创建自己的Docker镜像,然后安装插件?@UroshT。谢谢我以前从来没有这样做过,但我尝试了一下,并给出了答案。它似乎起作用了。我定制的Docker形象怎么样?我觉得很奇怪,我必须安装像curl和unzip这样的基本功能。“我觉得很奇怪,我必须安装像curl/unzip这样的基本功能”-它们在大多数图像中都不需要,那么为什么要包含它们呢?@SergioTulentsev要安装RabbitMQ插件,我似乎需要curl来下载它,然后我不得不解压它以获得.ez文件。@kayla,但是从基本映像运行rabbitmq不需要它们,所以它们不在那里也就不足为奇了。可以在这里找到(当前)最新版本的链接:这确实应该被标记为最有效的解决方案。这应该是公认的答案。谢谢我认为默认情况下,这个解决方案只适用于rabbitmq中包含的插件。这个问题中的插件不是这里列出的核心插件之一:@dylankapor你确定吗?我记得在写了这篇文章之后,我试着设置了一个重复数据消除插件,它按预期工作。