Skip to content

BeginnerCong/fast-deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

容器化应用快速部署框架

项目简介

这是一个高度可定制的容器化应用快速部署框架,通过Docker容器化技术实现多服务的一键部署、启动、停止和重启管理。框架的核心特点是采用主目录名作为框架名和快捷命令名,实现真正的通用部署体验。

适用于需要在离线环境或标准化环境中快速部署多容器应用的场景,特别适合企业内部应用部署、开发测试环境。

声明:我不会写代码,这个项目完全是由AI编写的,主要是为了我的个人需求。

系统要求

  • 操作系统: Linux (推荐 Ubuntu 20.04+ / Rocky 9.6+ / CentOS 8+)
  • Docker: 26.1.3
  • Docker Compose: v2.27.0
  • 内存: 根据部署服务规模调整,建议至少16GB+
  • 存储: 根据部署服务规模调整,建议至少200GB可用空间
  • 权限: 需要root或sudo权限进行安装

已验证: 本部署框架已在以下环境成功验证:

  • 操作系统: Rocky Linux 9.6
  • Docker: Docker version v26.1.3
  • Docker Compose: Docker Compose version v2.27.0

依赖说明

关于Docker、Docker Compose的离线安装包以及各系统依赖包的下载方法和目录结构,请参阅DEPENDENCY_INSTALL.md文件。

快速开始

1. 上传文件

将以下文件上传到Linux服务器的任意临时目录(例如 /tmp/deploy):

  • packages/ 目录(解压后的应用组件包)或packages.zip (应用组件包,二选一即可)
  • system-deps/ 目录 (系统依赖包,按架构分类)
  • install.sh (主安装脚本)
  • uninstall.sh (卸载脚本)
  • scripts/ 目录 (安装脚本,包含start-install.sh和menu.sh)

2. 一键部署

cd /tmp/deploy  # 进入包含安装文件的临时目录
chmod +x install.sh
# 运行主安装脚本
./install.sh

3. 选择安装目录

运行安装脚本后,系统会弹出交互式菜单:

  1. 首先选择 "快速部署" 选项
  2. 然后输入您希望的安装目录路径(默认:/opt/fast-deploy
  3. 框架会自动使用安装目录的最后一个目录名作为框架名称

4. 自动安装过程

安装脚本会自动执行以下步骤:

  • 依赖检查: 检查并安装必要的系统依赖(支持离线安装)
  • 解压组件: 解压应用组件包到指定目录
  • 权限设置: 设置必要的文件执行权限
  • 服务安装: 安装所有应用服务
  • 命令配置: 配置框架命令(以目录名为命令名)

服务管理

安装完成后,可直接使用框架名(即主目录名)作为命令来管理服务:

启动所有服务

$FRAMEWORK_NAME start

停止所有服务

$FRAMEWORK_NAME stop

重启所有服务

$FRAMEWORK_NAME restart

查看服务状态

$FRAMEWORK_NAME status

启动特定应用

$FRAMEWORK_NAME start <应用名>

自定义框架名称

本框架的核心设计理念是将主目录名作为框架的唯一标识和命令名。只需按照以下步骤操作,即可轻松自定义框架名称:

  1. 修改目标安装目录名称
  2. 保持内部文件结构不变
  3. 运行安装脚本

框架会自动检测并使用当前目录名作为框架名和命令名,无需修改任何脚本内容。

文件结构

部署前文件结构

部署文件目录/
├── system-deps/            # 系统依赖包(按系统分类)
│   ├── Kylin/             # 麒麟操作系统依赖包
│   │   ├── amd64/         # amd64架构
│   │   └── arm64/         # arm64架构
│   ├── Rocky/             # Rocky Linux系统依赖包
│   │   ├── amd64/         # amd64架构
│   │   └── arm64/         # arm64架构
│   └── Ubuntu/            # Ubuntu系统依赖包
│   │   ├── amd64/         # amd64架构
│   │   └── arm64/         # arm64架构
├── packages.zip           # 应用组件压缩包(或packages/目录,二选一即可)
├── install.sh             # 主安装脚本
├── uninstall.sh           # 卸载脚本
└── scripts/               # 安装脚本目录
    ├── start-install.sh   # 一键部署脚本
    ├── menu.sh           # 交互菜单脚本
    └── utils/             # 工具脚本目录

部署后目录结构

/opt/<框架名>/
├── system-deps/           # 系统依赖包目录
│   ├── Kylin/             # 麒麟操作系统依赖包
│   │   ├── amd64/         # amd64架构
│   │   └── arm64/         # arm64架构
│   ├── Rocky/             # Rocky Linux系统依赖包
│   │   ├── amd64/         # amd64架构
│   │   └── arm64/         # arm64架构
│   └── Ubuntu/            # Ubuntu系统依赖包
│       ├── amd64/         # amd64架构
│       └── arm64/         # arm64架构
├── packages/              # 解压后的应用组件
│   ├── app/               # 应用服务目录
│   ├── docker-images/     # Docker镜像目录
│   ├── docker-install/    # Docker离线安装包
│   │   ├── amd64/         # amd64架构Docker安装包
│   │   └── arm64/         # arm64架构Docker安装包
│   ├── install.sh         # 组件安装脚本
│   ├── start.sh           # 服务启动脚本
│   ├── stop.sh            # 服务停止脚本
│   └── restart.sh         # 服务重启脚本
├── scripts/               # 安装脚本目录
│   ├── start-install.sh   # 一键部署脚本
│   ├── menu.sh           # 交互菜单脚本
│   └── utils/             # 工具脚本目录
└── uninstall.sh           # 卸载脚本

功能特性

  • 通用性强:主目录名即框架名和命令名,无需修改代码即可适配不同项目
  • 一键部署:全流程自动化,极大降低部署门槛
  • 统一管理:统一的命令行接口,便于服务管理
  • 扩展性好:模块化设计,易于添加新服务
  • 兼容性高:支持多种Linux发行版和硬件架构
  • 离线支持:包含所有必要依赖,可在无网络环境下部署
  • 服务隔离:基于Docker容器技术,确保服务间相互隔离
  • 资源优化:合理配置容器资源,优化系统资源使用

框架优势

  1. 简化部署流程:将复杂的多服务部署简化为几个命令
  2. 提高部署一致性:确保每次部署的环境完全一致
  3. 降低运维成本:统一的管理接口降低了运维复杂度
  4. 增强系统稳定性:容器化部署减少了环境冲突问题
  5. 便于版本管理:支持不同版本的应用组件管理
  6. 灵活的扩展性:易于添加新的应用服务或功能模块

注意事项

  1. 安装权限:安装过程中需要root权限,请确保有足够权限
  2. 交互式安装:安装过程中会弹出交互式菜单,用户可以自定义安装目录
  3. 目录命名规范:安装目录名称只允许使用字母、数字、下划线和连字符
  4. 目录冲突:如果安装目录已存在,系统会提示是否覆盖现有文件
  5. 安装时间:首次安装可能需要较长时间,请耐心等待
  6. 自定义服务:如需添加自定义服务,请按照现有应用结构放置在packages/app/目录下
  7. 框架命名:修改框架名称时,只需修改安装目录名称,无需修改内部文件
  8. 容器部署:服务默认使用Docker容器化部署,确保Docker环境正常运行
  9. 部署建议:对于大型部署,建议先进行测试环境验证,再进行生产环境部署
  10. 数据备份:定期备份重要数据和配置文件,以防意外情况发生
  11. 下载完成后,请将依赖包按照架构和功能分类存放在对应的目录中
  12. 离线环境部署时,请确保已准备好所有必要的系统依赖包
  13. 系统依赖安装支持离线环境,会自动根据系统类型、架构和缺失的依赖选择合适的安装包
  14. 按目录组织依赖包可以实现精确安装,避免不必要的包安装,节省时间和存储空间

卸载说明

本框架提供了完整的卸载脚本,用于彻底清理所有相关服务、数据和配置。卸载过程将执行以下操作:

  1. 停止所有运行中的容器服务
  2. 删除框架相关的Docker镜像
  3. 删除安装目录及所有数据
  4. 删除命令行快捷方式

使用方法

重要:卸载脚本必须在框架的安装目录中执行!

cd /opt/fast-deploy  # 进入框架安装目录(默认为/opt/fast-deploy,具体以实际安装路径为准)
chmod +x uninstall.sh  # 添加执行权限
sudo ./uninstall.sh  # 以root权限运行卸载脚本

运行脚本后,会显示图形化菜单,您可以选择卸载所有服务和数据。脚本会显示详细的卸载确认信息,并在用户确认后执行卸载操作。

注意:卸载操作是不可逆的,将删除所有服务数据和配置。在执行卸载前,请确保已备份所有重要数据。

贡献

欢迎提交 Issue 和 Pull Request 来帮助改进项目。

作者

BeginnerCong

许可证

本项目采用 MIT License 开源许可证。

免责声明

本项目仅供学习和参考,在生产环境中使用前请进行充分测试。作者不对使用本项目可能导致的任何损失负责。

About

容器化应用快速部署框架

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages