feat(deploy): 个人 NAS 单机 Docker 部署方案
适用:内网 / 家庭 / 小团队(≤50 并发),无 K8s 需求。
特性:单容器 + SQLite + 端口暴露,最小维护成本。
新增:
- deploy/nas/Dockerfile: python:3.11-slim 基础镜像 + 非 root + HEALTHCHECK
- deploy/nas/start.sh: flask db upgrade 幂等迁移 + gunicorn (2 workers × 4 threads)
- deploy/nas/docker-compose.yaml: 单服务 + 4 个命名卷 (db/logs/session/upload) + 资源限制
- docs/deployment-nas.md: 完整部署/备份/升级/排障指南
完善:
- .env.example: 改为生产环境导向 (PEAR_ENV=pro,SECRET_KEY 必填)
- .dockerignore: 排除 deploy/dev (开发用容器配置)、tests/截图、一次性脚本
- applications/view/public/__init__.py: 注释说明 /healthz 已在 applications/view/health.py 注册
复用现有:
- /healthz 接口 (applications/view/health.py) 含 DB 探活,DB 不可达返回 503
→ 容器 HEALTHCHECK 直接用 /healthz 即可
⚠️ 本机无 docker,未执行 docker build 验证;已静态校验 YAML/bash 语法、
文件路径、.env 字段消费、ProConfig 严格性、/healthz 端点可用性。
首次 NAS 上部署时跑一遍文档步骤即可。
This commit is contained in:
+60
-7
@@ -1,11 +1,64 @@
|
||||
# 构建的相关文件
|
||||
README.md
|
||||
# =====================================================
|
||||
# Pear Admin Flask - Docker 构建期排除
|
||||
# =====================================================
|
||||
# 防止 .git / 缓存 / 测试截图 / 一次性脚本进镜像
|
||||
# 注意:运行时数据(pear.db)通过 docker-compose volume 挂载,
|
||||
# 这里排除 *.db 只是防止源代码里的 db 文件被误 COPY
|
||||
|
||||
# Python 相关文件
|
||||
migrations/
|
||||
# ---- VCS ----
|
||||
.git/
|
||||
.gitignore
|
||||
.github/
|
||||
|
||||
# ---- Python 缓存 ----
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
*.so
|
||||
|
||||
# ---- 虚拟环境 ----
|
||||
venv/
|
||||
.venv/
|
||||
env/
|
||||
|
||||
# ---- 数据库 / 运行时数据 ----
|
||||
# 注意:pear.db 不在源码里(运行时由容器创建 + 卷挂载),这里排除只是兜底
|
||||
*.db
|
||||
*.db.bak
|
||||
pear.db.before_dedup.*
|
||||
|
||||
# ---- 日志 ----
|
||||
*.log
|
||||
logs/
|
||||
|
||||
# ---- Flask ----
|
||||
instance/
|
||||
flask_session/
|
||||
venv/
|
||||
|
||||
# ---- IDE / 编辑器 ----
|
||||
.idea/
|
||||
*.log
|
||||
*.db
|
||||
.vscode/
|
||||
*.swp
|
||||
|
||||
# ---- 构建 / 测试产物 ----
|
||||
build/
|
||||
dist/
|
||||
*.egg-info/
|
||||
.pytest_cache/
|
||||
htmlcov/
|
||||
|
||||
# ---- 测试截图 / 探针脚本输出 ----
|
||||
scripts/_verify_*.png
|
||||
scripts/screenshots/
|
||||
output/
|
||||
|
||||
# ---- 开发用 docker 配置(不进 NAS 镜像)----
|
||||
deploy/dev/
|
||||
|
||||
# ---- 一次性工具 ----
|
||||
nav_extracted.js
|
||||
dedup_nav.py
|
||||
|
||||
# ---- 环境变量文件(不进镜像)----
|
||||
.env
|
||||
.env.*.local
|
||||
Reference in New Issue
Block a user