一、编写Dockerfile
Dockerfile 指令详细注释如下:
# 使用带有管理插件的官方 RabbitMQ 镜像作为基础
FROM rabbitmq:3.9-management
# 复制自定义模板文件到 RabbitMQ 管理插件的模板目录
# 这里假设 ./users.ejs 和 ./limits.ejs 是用于自定义管理界面的模板文件
COPY ./users.ejs /opt/rabbitmq/plugins/rabbitmq_management-3.9.29/priv/www/js/tmpl
COPY ./limits.ejs /opt/rabbitmq/plugins/rabbitmq_management-3.9.29/priv/www/js/tmpl
# 设置环境变量 ACTIVEMQ_HOME,虽然这里与 RabbitMQ 无关,但保留原样
ENV ACTIVEMQ_HOME /mydocker/activemq
# 更新 apt 包列表,并安装 curl 工具,用于下载插件
RUN apt-get -o Acquire::Check-Date=false update && apt-get install -y curl
# 下载延迟消息交换插件
# 将插件下载到 RabbitMQ 的 plugins 目录下
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
# 更改插件文件的所有者,确保 RabbitMQ 用户可以访问和管理插件
RUN chown rabbitmq:rabbitmq $RABBITMQ_HOME/plugins/rabbitmq_delayed_message_exchange-3.9.0.ez
# 启用延迟消息交换插件
RUN rabbitmq-plugins enable rabbitmq_delayed_message_exchange
上传Dockerfile 和自定义模版,自行下载。上传到服务器
二、构建镜像
用上面Dockerfile 打包为本地镜像
注意:要在上面mydocker/rabbitMq目录下执行
docker build -t my-rabbitmq .
执行结果如下:
[+] Building 100.7s (12/12) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 732B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferri