如何将插件添加到RabbitMQ Docker镜像?

时间:2018-10-15 14:41:03

标签: docker rabbitmq

我正在使用https://hub.docker.com/_/rabbitmq/中的rabbitmq:3-management,但是它缺少我需要rabbitmq_delayed_message_exchange的插件。

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

4 个答案:

答案 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