我正在使用https://hub.docker.com/_/rabbitmq/中的rabbitmq:3-management
,但是它缺少我需要rabbitmq_delayed_message_exchange
的插件。
如果该插件在图片中不可用,如何启用该插件?
答案 0 :(得分:4)
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 :(得分:1)
只需更新以上答案即可。您可以将下载的插件复制到rabbitmq映像中并进行安装。
1。准备自定义图片:
Dockerfile
FROM rabbitmq:3.7.18-management
COPY ./rabbitmq_delayed_message_exchange-20171201-3.7.x.ez /opt/rabbitmq/plugins/
RUN rabbitmq-plugins enable rabbitmq_delayed_message_exchange
docker-composer.yml
rabbitmq:
image: rabbitmq-custom
ports:
- "5672:5672"
- "15672:15672"
2。建立图片
docker build -t rabbitmq-custom .
3。运行docker composer:
docker-compose up
答案 2 :(得分:1)
根据https://hub.docker.com/_/rabbitmq,似乎这里还有第二种选择。 我认为可接受的答案是最好的解决方案,因为它可以进行更多的调整,但有人可能更喜欢另一种方法:
启用插件
[接受的答案...]
您还可以在文件
/etc/rabbitmq/enabled_plugins
上装载文件,其内容是以句点结尾的原子的错误列表。示例
enabled_plugins
[rabbitmq_federation_management,rabbitmq_management,rabbitmq_mqtt,rabbitmq_stomp].
免责声明:我还没有尝试过。
答案 3 :(得分:1)
如果你已经有一个正在运行的容器而不是简单地运行
<块引用>docker exec -it NameOfContainer bash
在我的情况下,我需要启用 rabbitmq_jms_topic_exchange
<块引用>rabbitmq-plugins 启用 rabbitmq_jms_topic_exchange