Files
pear-admin-flask/.dockerignore
T
bwstudio 98edfdaf2d 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 上部署时跑一遍文档步骤即可。
2026-09-06 18:35:31 +08:00

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