Files
host_message/DEPLOY_NOTES.md
2026-02-13 12:33:43 +08:00

3.5 KiB

部署脚本优化报告

🚨 主要问题修复

1. Python环境管理问题

问题: Ubuntu 24.04 使用了 PEP 668 外部管理环境策略,禁止直接使用 pip 安装包到系统环境 解决方案:

  • 使用 Python 虚拟环境 (python3 -m venv)
  • 所有依赖安装在隔离的虚拟环境中
  • 应用启动时自动激活虚拟环境

2. 环境重复安装优化

改进:

  • 添加环境检测功能,避免重复安装已存在的组件
  • 智能判断:基础环境 / 虚拟环境 / 完全安装
  • 如果服务器已有环境,跳过系统依赖安装

3. 文件上传修复

问题: database/* 被排除,导致 ip_list.json 无法上传 解决方案:

  • 移除了 database/* 的排除规则
  • ip_list.json 现在会正确上传到服务器

📁 文件结构改进

服务器部署结构:
/home/ubuntu/
├── host_message_venv/          # Python虚拟环境
│   ├── bin/python              # 虚拟环境Python解释器
│   ├── bin/pip                 # 虚拟环境pip
│   └── lib/python3.12/         # 依赖包安装位置
└── host_message/               # 应用代码
    ├── main.py                 # 主应用文件
    ├── database/
    │   └── ip_list.json        # ✅ 现在会正确上传
    ├── start_app.sh            # 启动脚本(使用虚拟环境)
    ├── debug_app.sh            # 调试脚本
    └── logs/
        └── supervisor.log      # 应用日志

🔧 技术改进

虚拟环境管理

  • 创建独立的Python虚拟环境 /home/ubuntu/host_message_venv
  • 所有依赖安装在虚拟环境中,避免系统污染
  • 启动脚本自动激活虚拟环境

智能部署流程

1. 检查环境状态
   ├── 完全已安装 → 跳过所有安装
   ├── 部分安装 → 只创建虚拟环境  
   └── 未安装 → 完整安装流程

2. 虚拟环境管理
   ├── 检测现有虚拟环境
   ├── 重新创建(确保干净)
   └── 安装所有Python依赖

3. 应用部署
   ├── 代码解压
   ├── 启动脚本配置
   └── Supervisor进程管理

错误诊断增强

  • 改进的调试脚本,支持虚拟环境
  • 详细的环境信息输出
  • 更好的错误日志收集

🚀 使用指南

1. 预检查(推荐)

./pre_deploy_check.sh

2. 执行部署

./deploy.sh

3. 应用管理

# 查看状态
ssh ubuntu@6.6.6.86 'sudo supervisorctl status host_message'

# 重启应用
ssh ubuntu@6.6.6.86 'sudo supervisorctl restart host_message'

# 查看日志
ssh ubuntu@6.6.6.86 'tail -f /home/ubuntu/host_message/logs/supervisor.log'

# 调试应用
ssh ubuntu@6.6.6.86 'cd /home/ubuntu/host_message && ./debug_app.sh'

问题解决确认

  • Python环境管理: 使用虚拟环境避免 externally-managed-environment 错误
  • 依赖安装: 所有包正确安装在虚拟环境中
  • 文件上传: ip_list.json 正确上传到服务器
  • 环境检测: 智能跳过已安装的组件
  • 进程管理: 正确的启动和监控配置
  • 错误诊断: 详细的调试信息和日志

🎯 预期结果

部署成功后,应用将:

  1. 在独立的Python虚拟环境中运行
  2. 自动启动并保持运行状态
  3. 监听 8888 端口提供服务
  4. 包含完整的 ip_list.json 配置
  5. 具备自动重启和日志管理功能

访问地址: http://6.6.6.86:8888