适用:内网 / 家庭 / 小团队(≤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 上部署时跑一遍文档步骤即可。
64 lines
1.2 KiB
Plaintext
64 lines
1.2 KiB
Plaintext
# =====================================================
|
|
# Pear Admin Flask - Docker 构建期排除
|
|
# =====================================================
|
|
# 防止 .git / 缓存 / 测试截图 / 一次性脚本进镜像
|
|
# 注意:运行时数据(pear.db)通过 docker-compose volume 挂载,
|
|
# 这里排除 *.db 只是防止源代码里的 db 文件被误 COPY
|
|
|
|
# ---- 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/
|
|
|
|
# ---- IDE / 编辑器 ----
|
|
.idea/
|
|
.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 |