我正在rabbitmq:3-management从https://hub.docker.com/_/rabbitmq/使用,但是它缺少我需要的插件rabbitmq_delayed_message_exchange。
如果该插件在映像中不可用,如何启用它?
Sar*_*oev 12
只是更新接受的答案。您可以将下载的插件复制到rabbitmq 镜像中并安装它。
插件下载链接:https : //github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
1. 准备自定义镜像:
文件
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
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml
rabbitmq:
image: rabbitmq-custom
ports:
- "5672:5672"
- "15672:15672"
Run Code Online (Sandbox Code Playgroud)
2. 构建镜像
docker build -t rabbitmq-custom .
Run Code Online (Sandbox Code Playgroud)
3. 运行docker composer:
docker-compose up
Run Code Online (Sandbox Code Playgroud)
cde*_*dev 12
这就是我在3.9版本中实现的
FROM rabbitmq:3.9-management
COPY rabbitmq.conf /etc/rabbitmq/rabbitmq.conf
RUN apt-get -o Acquire::Check-Date=false update && apt-get install -y curl
RUN curl -L https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.9.0/rabbitmq_delayed_message_exchange-3.9.0.ez > $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez
RUN chown rabbitmq:rabbitmq $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez
RUN rabbitmq-plugins enable rabbitmq_delayed_message_exchange
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
根据https://hub.docker.com/_/rabbitmq看来,这里还没有提到第二个选项。我觉得接受的答案是最好的解决方案,因为它允许进行更多调整,但人们可能更喜欢另一种方法:
启用插件
[接受的答案...]
您还可以将文件安装在
/etc/rabbitmq/enabled_plugins内容为以句点结尾的原子的 erlang 列表中。例子
enabled_pluginsRun Code Online (Sandbox Code Playgroud)[rabbitmq_federation_management,rabbitmq_management,rabbitmq_mqtt,rabbitmq_stomp].
免责声明:我还没有尝试过。
小智 9
希望这也有帮助:
rabbitmq3:
container_name: "rabbitmq"
image: rabbitmq:3.8-management-alpine
environment:
- RABBITMQ_DEFAULT_USER=local
- RABBITMQ_DEFAULT_PASS=localpwd
- RABBITMQ_PLUGINS_DIR=/opt/rabbitmq/plugins:/usr/lib/rabbitmq/plugins
ports:
# AMQP protocol port
- '5672:5672'
# HTTP management UI
- '15672:15672'
volumes:
- ./rabbit/enabled_plugins:/etc/rabbitmq/enabled_plugins
- ./rabbit/plugins:/usr/lib/rabbitmq/plugins
Run Code Online (Sandbox Code Playgroud)
在 docker-compose 的同一路径中添加一个“rabbit”文件夹,其中包含一个名为enabled_plugins的文件
[rabbitmq_management, rabbitmq_message_deduplication].
Run Code Online (Sandbox Code Playgroud)
然后在插件文件夹(“rabbit”文件夹内)中下载您需要的插件 .ez-VERSION。
即https://github.com/noxdafox/rabbitmq-message-deduplication/releases
| 归档时间: |
|
| 查看次数: |
1998 次 |
| 最近记录: |