1、首先 docker pull rabbitmq:management 启动一下看下这个rabbitmq版本是多少
docker inspect ${CONTAINER ID}
2、到该网址 https://www.rabbitmq.com/community-plugins 下载对应插件版本
找rabbitmq_management_exchange github 地址进行下载插件
3、比如我当前的版本是3.9.11 我去下载 rabbitmq_delayed_message_exchange-3.9.0.ez
4、新建文件夹
mkdir -p /root/rabbit_Dockerfile
cd /root/rabbit_Dockerfile
vim Dockerfile
FROM rabbitmq:management
# 设置时区为亚洲/上海
ENV TZ=Asia/Shanghai
# 安装 tzdata 包以便设置时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 将插件文件复制到 RabbitMQ 插件目录中
COPY rabbitmq_delayed_message_exchange-3.9.0.ez /plugins/rabbitmq_delayed_message_exchange.ez
# 启用插件
RUN rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange
下面是完整的脚本
#!/bin/bash
#构建镜像
docker build -t delayed_message_rabbitmq .
#启动容器
docker run -d --name delayed_message_rabbitmq -p 5672:5672 -p 15672:15672 -v /etc/localtime:/etc/localtime delayed_message_rabbitmq
#睡眠10秒 为了等待rabbitmq完全启动
sleep 10s
#新增admin用户设置密码
docker exec delayed_message_rabbitmq rabbitmqctl add_user admin ${pwd}
# 设置admin 为超级用户
docker exec delayed_message_rabbitmq rabbitmqctl set_user_tags admin administrator
#设置admin 权限
docker exec delayed_message_rabbitmq rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
# 删除默认的rabbitmq 用户 guest
docker exec delayed_message_rabbitmq rabbitmqctl delete_user guest