当前位置: 首页 > article >正文

Docker Compose部署Rabbitmq(脚本下载延迟插件)

整个工具的代码都在Gitee或者Github地址内

gitee:solomon-parent: 这个项目主要是总结了工作上遇到的问题以及学习一些框架用于整合例如:rabbitMq、reids、Mqtt、S3协议的文件服务器、mongodb

github:GitHub - ZeroNing/solomon-parent: 这个项目主要是总结了工作上遇到的问题以及学习一些框架用于整合例如:rabbitMq、reids、Mqtt、S3协议的文件服务器、mongodb

1.新增data文件夹

2.新增docker-compose.yml文件

version: '3.8'

services:
  rabbitmq:
    image: rabbitmq:management
    container_name: rabbitmq
    ports:
      - "15672:15672"
      - "5672:5672"
    volumes:
      - ./start-rabbitmq-with-plugin.sh:/usr/local/bin/start-rabbitmq-with-plugin.sh
      - ./data:/usr/etc/rabbitmq/data
      - /etc/localtime:/etc/localtime # 容器与宿主机时间同步
    command: ["/bin/bash", "-c", "chmod +x /usr/local/bin/start-rabbitmq-with-plugin.sh && /usr/local/bin/start-rabbitmq-with-plugin.sh"]
    restart: always

3.新增start-rabbitmq-with-plugin.sh脚本

#!/bin/bash

# 安装 wget
if ! command -v wget &> /dev/null
then
    echo "wget not found, installing..."
    apt-get update && apt-get install -y wget
    if [ $? -ne 0 ]; then
        echo "Failed to install wget"
        exit 1
    fi
else
    echo "wget is already installed"
fi

# 创建插件目录,如果不存在的话
mkdir -p /plugins

# 下载 RabbitMQ 延迟消息插件
if [ ! -f /plugins/rabbitmq_delayed_message_exchange-3.13.0.ez ]; then
    echo "Downloading rabbitmq_delayed_message_exchange plugin..."
    wget -O /plugins/rabbitmq_delayed_message_exchange-3.13.0.ez \
    https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.13.0/rabbitmq_delayed_message_exchange-3.13.0.ez
    if [ $? -ne 0 ]; then
        echo "Failed to download rabbitmq_delayed_message_exchange plugin"
        exit 1
    fi
else
    echo "Plugin already downloaded"
fi

# 修改插件文件权限
echo "Setting permissions for the plugin..."
chmod 644 /plugins/rabbitmq_delayed_message_exchange-3.13.0.ez

# 启用插件
echo "Enabling the plugin..."
rabbitmq-plugins enable rabbitmq_delayed_message_exchange

# 启动 RabbitMQ 服务
echo "Starting RabbitMQ server..."
rabbitmq-server


http://www.kler.cn/a/386071.html

相关文章:

  • 微搭低代码入门05循环
  • [Admin] Dashboard Filter for Mix Report Types
  • java算法性能调优:详尽探讨时间复杂度与空间复杂度的分析与优化“
  • arkUI:水果选择与管理:基于 ArkUI 的长按编辑功能实现
  • css中的变量使用
  • stream学习
  • Spring:项目中常见的四种分页方案!
  • 新能源行业必会基础知识-----电力现货市场理论篇-----电力现货市场价格机制-----电力现货市场价格机制
  • Kubernetes-ArgoCD篇-03-部署
  • kafka常见面试题总结
  • C++继承(图文非常详细)
  • html+js+css实现拖拽式便签留言
  • SSL/TLS握手过程
  • 渗透测试专业名词解释
  • 罗技M590鼠标无法连接到无线接收器
  • 室内定位论文精华-20241108
  • 软件需求规格书评审报告,系统需求设计申评审,代码和测试过程评审报告,软件各类资质评审资料(word原件)
  • 书生实战营第四期-基础岛第四关-InternLM + LlamaIndex RAG 实践
  • uni-app开发小程序【uni.showToast字数超过两行自动省略显示不全问题】
  • 论文阅读:基于语义分割的非结构化田间道路场景识别
  • SpringBoot开发——Spring Boot 3种定时任务方式
  • 深入探索哈尔滨二级等保下的负载均衡SLB及其核心算法
  • FineBI帆软 FCA-数据分析理论 正确答案
  • 【spark面试】spark的shuffle过程
  • 【QT项目】QT6项目之基于C++的通讯录管理系统(联系人/学生管理系统)
  • Python世界:力扣题704二分查找