环境要求
概述
本文档详细说明邮轮穿舱件管理系统后台运行所需的完整环境配置要求,包括Python版本、数据库类型、操作系统要求以及Docker环境配置分析。
Python版本要求
核心版本要求
- Python 3.11:系统基于Python 3.11构建,使用
slim版本的官方镜像 - 兼容性说明:由于使用了Python 3.11的特定特性,建议使用3.11.x系列版本
版本验证
通过Dockerfile中的基础镜像配置确认版本要求:
FROM python:3.11-slim
参考文件:
数据库要求
数据库类型
系统使用Tortoise ORM作为数据库抽象层,支持多种数据库后端:
- PostgreSQL
- MySQL
- SQLite
数据库配置
数据库配置通过环境特定的JSON文件进行管理:
# 从环境特定的配置文件加载数据库配置
@computed_field
@property
def tortoise_orm_config_dict(self) -> Dict[str, Any]:
with open(f".config/{self.env}.database.json", "r") as f:
return json.load(f)
数据库迁移工具
使用Aerich进行数据库迁移管理:
- 空数据库初始化:
aerich init-db - 模型更新:
aerich migrate+aerich upgrade
参考文件:
操作系统要求
推荐操作系统
- Linux:基于Debian的slim镜像,提供最佳兼容性
- 容器化部署:建议使用Docker容器化部署
系统依赖
由于使用slim镜像,可能需要额外安装系统依赖包:
- 基础运行时环境
- 可能的编译工具(如需编译某些Python包)
Docker环境配置分析
基础镜像配置
FROM python:3.11-slim
WORKDIR /app
依赖安装配置
COPY requirements.txt .
RUN pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
关键配置说明:
- 使用清华大学PyPI镜像加速依赖下载
- 工作目录设置为
/app - 分阶段构建优化镜像大小
应用部署配置
COPY . /app
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
部署特性:
- 使用Uvicorn作为ASGI服务器
- 监听所有网络接口(0.0.0.0)
- 默认端口8000
数据库迁移配置(注释状态)
## RUN aerich init-db
# RUN aerich migrate
# RUN aerich upgrade
说明:数据库迁移命令在Dockerfile中处于注释状态,建议在容器启动时执行。
环境配置架构
flowchart TD
A[Python 3.11环境] --> B[依赖包安装]
B --> C[应用代码部署]
C --> D[数据库配置加载]
D --> E[应用启动]
F[环境变量] --> G[配置文件读取]
G --> H[数据库连接]
H --> E
I[.env文件] --> G
J[.config目录] --> G
配置文件结构
环境特定配置
系统使用多环境配置模式:
.config/
├── development.application.json
├── development.database.json
├── development.wechat.json
├── production.application.json
├── production.database.json
└── production.wechat.json
配置加载流程
sequenceDiagram
participant App as 应用启动
participant Settings as Settings类
participant Config as 配置文件
participant DB as 数据库
App->>Settings: 实例化
Settings->>Config: 读取.env文件
Settings->>Config: 读取环境特定配置
Config-->>Settings: 返回配置数据
Settings->>DB: 建立数据库连接
DB-->>App: 连接就绪
依赖管理
包管理工具
- 使用标准的
requirements.txt文件管理依赖 - 支持PyPI包安装和自定义源配置
镜像加速
配置清华大学PyPI镜像提升构建速度:
-i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
性能考虑
镜像优化
- 使用
slim基础镜像减少镜像大小 - 分阶段构建避免包含不必要的文件
- 清理缓存和临时文件
运行时优化
- 使用Uvicorn作为高性能ASGI服务器
- 合理的连接池配置
- 环境特定的性能调优
安全要求
环境变量安全
- 敏感信息通过环境变量管理
- 使用
.env文件进行本地开发配置 - 生产环境使用安全的密钥管理方案
数据库安全
- 连接字符串通过配置文件管理
- 支持SSL加密连接
- 访问控制策略
部署架构图
graph TB
subgraph 容器环境
A[Docker容器]
B[Python 3.11运行时]
C[应用代码]
D[依赖包]
end
subgraph 外部服务
E[数据库]
F[微信服务]
G[CV Core服务]
end
A --> B
B --> C
B --> D
C --> E
C --> F
C --> G
style A fill:#e1f5fe
style E fill:#f3e5f5
style F fill:#f3e5f5
style G fill:#f3e5f5
索引
邮轮穿舱件管理系统后台具有清晰的环境要求架构,主要特点包括:
- 版本明确:基于Python 3.11的稳定版本
- 数据库灵活:支持多种数据库后端,配置驱动
- 容器化友好:完整的Docker支持,优化构建流程
- 多环境支持:通过配置文件支持开发/生产环境切换
- 性能优化:使用高性能组件和优化配置
系统设计考虑了开发便利性和生产环境的稳定性要求,提供了完整的部署和配置方案。
参考文件汇总: