Dockerfile 构建包含延迟队列插件[rabbitmq_delayed_message_exchange]的RabbitMQ

发布时间 2023-06-15 11:01:52作者: CHEN_凡

手动下载 rabbitmq_delayed_message_exchange 插件

根据不同版本号RabbitMQ的前往Github仓库 下载合适版本的插件
本次选择 rabbitmq:3.9.29 添加 rabbitmq_delayed_message_exchange 插件

从代码仓库在获悉 rabbitmq_delayed_message_exchange-3.9.0.ez 适合 RabbitMQ 3.9.x

Dockerfile

FROM rabbitmq:3.9.29-management-alpine

COPY rabbitmq_delayed_message_exchange-3.9.0.ez /opt/rabbitmq/plugins

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories \
    && apk update && apk upgrade \
    && apk add --no-cache tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    && apk del tzdata \
    && rm -rf /var/cache/apk/* \
    && echo '[rabbitmq_delayed_message_exchange,rabbitmq_management,rabbitmq_prometheus].' > /etc/rabbitmq/enabled_plugins  \
    && rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange

编译镜像

docker image build --file Dockerfile --tag rabbitmq:3.9.29-management_delayed_message_exchange .

启动容器查看插件启用情况

[root@centos7 rabbitmq_addplugins]# docker run -it --rm rabbitmqtest:1 rabbitmq-plugins list 
Listing plugins with pattern ".*" ...
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: [failed to contact rabbit@00495a91431f - status not shown]
 |/
[  ] rabbitmq_amqp1_0                  3.9.29
[  ] rabbitmq_auth_backend_cache       3.9.29
[  ] rabbitmq_auth_backend_http        3.9.29
[  ] rabbitmq_auth_backend_ldap        3.9.29
[  ] rabbitmq_auth_backend_oauth2      3.9.29
[  ] rabbitmq_auth_mechanism_ssl       3.9.29
[  ] rabbitmq_consistent_hash_exchange 3.9.29
[E ] rabbitmq_delayed_message_exchange 3.9.0
[  ] rabbitmq_event_exchange           3.9.29
[  ] rabbitmq_federation               3.9.29
[  ] rabbitmq_federation_management    3.9.29
[  ] rabbitmq_jms_topic_exchange       3.9.29
[E ] rabbitmq_management               3.9.29
[e ] rabbitmq_management_agent         3.9.29
[  ] rabbitmq_mqtt                     3.9.29
[  ] rabbitmq_peer_discovery_aws       3.9.29
[  ] rabbitmq_peer_discovery_common    3.9.29
[  ] rabbitmq_peer_discovery_consul    3.9.29
[  ] rabbitmq_peer_discovery_etcd      3.9.29
[  ] rabbitmq_peer_discovery_k8s       3.9.29
[E ] rabbitmq_prometheus               3.9.29
[  ] rabbitmq_random_exchange          3.9.29
[  ] rabbitmq_recent_history_exchange  3.9.29
[  ] rabbitmq_sharding                 3.9.29
[  ] rabbitmq_shovel                   3.9.29
[  ] rabbitmq_shovel_management        3.9.29
[  ] rabbitmq_stomp                    3.9.29
[  ] rabbitmq_stream                   3.9.29
[  ] rabbitmq_stream_management        3.9.29
[  ] rabbitmq_top                      3.9.29
[  ] rabbitmq_tracing                  3.9.29
[  ] rabbitmq_trust_store              3.9.29
[e ] rabbitmq_web_dispatch             3.9.29
[  ] rabbitmq_web_mqtt                 3.9.29
[  ] rabbitmq_web_mqtt_examples        3.9.29
[  ] rabbitmq_web_stomp                3.9.29
[  ] rabbitmq_web_stomp_examples       3.9.29

可以看到插件 rabbitmq_delayed_message_exchange 3.9.0 已经被启用