# base-docker **Repository Path**: king_nd/base-docker ## Basic Information - **Project Name**: base-docker - **Description**: 123123123123123123123 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-09 - **Last Updated**: 2025-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 中间件快速部署方案 这是一个模块化的中间件部署方案,支持灵活组合和快速部署常用的中间件服务。采用 Docker Compose 技术,提供开箱即用的解决方案。 ## 🚀 特性 - **模块化设计**: 每个中间件独立部署,可按需组合 - **一键部署**: 支持批量部署、卸载和状态检查 - **离线支持**: 完备的离线部署能力,自动识别系统架构 (x86_64/ARM64) - **数据安全**: 自动化的备份策略,支持本地和异地备份 - **生产就绪**: 包含健康检查、自动恢复等生产级特性 - **统一管理**: 提供统一的 `yjhh-deploy.sh` 管理脚本 ## 📁 项目结构 ``` yjhh-deploy/ ├── yjhh-deploy.sh # 主管理脚本 ├── docker_offline.sh # Docker 离线安装脚本 ├── backup/ # 备份数据根目录 ├── modules/ # 模块目录 │ ├── mysql/ # MySQL 数据库模块 │ │ ├── docker-compose.yml │ │ ├── .env # 环境配置 │ │ ├── backup.sh # 备份脚本 │ │ ├── create_offline_package.sh # 离线包制作脚本 │ │ └── init/ # 初始化 SQL │ ├── redis/ # Redis 缓存模块 │ │ ├── docker-compose.yml │ │ ├── .env │ │ ├── backup.sh # 备份脚本 │ │ └── create_offline_package.sh │ └── minio/ # MinIO 对象存储模块 │ ├── docker-compose.yml │ ├── .env │ ├── backup.sh # 备份脚本 │ ├── create_offline_package.sh │ └── scripts/ # 桶初始化脚本 └── README.md # 本文档 ``` ## 🛠️ 快速开始 ### 1. 前置准备 - **操作系统**: Linux (CentOS/Ubuntu/Debian) 或 Windows (需安装 WSL2 或 Git Bash) - **依赖工具**: Docker, Docker Compose, Git **在线安装 Docker (可选)** ```bash # 下载 Docker 离线包 ./docker_offline.sh # 安装 Docker sudo ./offline-install.sh ``` ### 2. 基本使用 **赋予脚本执行权限** ```bash chmod +x yjhh-deploy.sh ``` **部署模块** ```bash # 部署所有核心模块 ./yjhh-deploy.sh mysql redis minio # 部署单个模块 ./yjhh-deploy.sh mysql ``` **服务管理** ```bash # 启动模块 ./yjhh-deploy.sh --start mysql # 停止模块 ./yjhh-deploy.sh --stop mysql # 查看状态 ./yjhh-deploy.sh --status ``` **卸载模块** ```bash # 批量卸载 (危险操作,会删除数据卷) ./yjhh-deploy.sh --uninstall mysql redis minio ``` ### 3. 离线部署 本方案支持完全离线环境部署。 **第一步:制作离线包(在有网机器上)** 可以使用主脚本一键制作: ```bash # 制作单个模块离线包 ./yjhh-deploy.sh --package mysql # 批量制作 ./yjhh-deploy.sh --package mysql redis minio ``` 生成的包位于各模块的 `offline-packages/` 目录下。 **第二步:离线部署(在目标机器上)** 将整个项目拷贝到目标机器,直接运行: ```bash # 自动识别架构并加载对应的离线镜像 ./yjhh-deploy.sh --offline mysql redis ``` ## 📦 模块详情 ### MySQL 模块 - **版本**: 8.0 - **默认端口**: 3306 - **默认账号**: `root` / `Yjhh@2026.com` - **特性**: 自动初始化 SQL、每日自动备份 (02:00) ### Redis 模块 - **版本**: 7.0 (Alpine) - **默认端口**: 6379 - **默认密码**: `Yjhh@2026.com` - **特性**: 数据持久化 (RDB) ### MinIO 模块 - **版本**: RELEASE.2025-05-24T17-08-30Z - **API 端口**: 9000 - **控制台端口**: 9001 - **默认账号**: `minio` / `Yjhh@2026.com` - **特性**: 自动创建桶、每日自动备份 (03:00) ## 🔄 备份与恢复 系统部署时会自动为每个模块配置定时备份任务。 ### 自动备份策略 - **MySQL**: 每天 02:00 - **MinIO**: 每天 03:00 - **备份路径**: `d:\运维\backup\<模块名>\` ### 手动管理备份 **MySQL 备份管理** ```bash cd modules/mysql ./backup.sh backup # 立即执行一次备份 ./backup.sh list # 查看备份列表 ./backup.sh restore # 恢复指定备份 ``` **MinIO 备份管理** ```bash cd modules/minio ./backup.sh backup # 立即备份所有桶 ./backup.sh restore # 恢复指定桶 ``` ## 🚨 常见问题 **Q: 执行 git pull 时提示冲突 (conflict)** A: 如果您修改了本地文件(如 `yjhh-deploy.sh`),更新时可能会冲突。 解决方法(放弃本地修改): ```bash git reset --hard HEAD git pull ``` **Q: 批量卸载时只卸载了第一个模块** A: 请确保使用最新版本的 `yjhh-deploy.sh`。旧版本存在此问题,最新版已修复并完美支持批量卸载: ```bash ./yjhh-deploy.sh --uninstall mysql redis minio ``` **Q: 部署时提示 "network yjhh-network exists"** A: 这是正常现象,脚本会自动检测并使用已存在的 Docker 网络。 **Q: 离线部署提示找不到镜像** A: 请确保运行了 `create_offline_package.sh` 并且 `offline-packages` 目录中包含对应架构(x86_64 或 aarch64)的 tar 包。 **Q: Windows 下脚本执行报错 `\r: command not found`** A: `yjhh-deploy.sh` 已内置自动修复功能。如果手动运行模块脚本报错,请使用 `sed -i 's/\r$//' script.sh` 修复换行符。建议在 Windows 上使用 **Git Bash** 运行此脚本。 ## 🤝 贡献与支持 欢迎提交 Issue 和 Pull Request 来改进这个项目。