# ============================================================ # 高考志愿家庭门户 — Docker Compose 编排文件 # 用于群晖 NAS (Container Manager) 一键部署 # # 架构: # nginx (80) → 静态报告 + 导航首页 # backend (5000) → 问卷 API + SQLite 存储 # # 访问: http://:8080 # ============================================================ version: '3.8' services: # ---------- Nginx: 静态文件服务器 + API 反向代理 ---------- nginx: image: nginx:alpine # 使用 Alpine 精简镜像(~5MB) container_name: gaokao-nginx ports: - "8080:80" # 宿主机 8080 → 容器 80 volumes: - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro # Nginx 配置(只读挂载) - ./nginx/html:/usr/share/nginx/html:ro # 静态页面目录(只读) depends_on: - backend # 等 backend 启动后再启动 restart: unless-stopped # 异常退出自动重启 networks: - gaokao-net # ---------- Flask: 问卷后端 API ---------- backend: build: ./backend # 用 backend/ 目录下的 Dockerfile 构建 container_name: gaokao-backend volumes: - ./backend/data:/app/data # SQLite 数据库持久化到宿主机 environment: - FLASK_ENV=production # 生产模式 - TZ=Asia/Shanghai # 时区 restart: unless-stopped networks: - gaokao-net # Docker 内部网络,nginx 和 backend 通过容器名互相访问 networks: gaokao-net: driver: bridge