46 lines
1.7 KiB
YAML
46 lines
1.7 KiB
YAML
|
|
# ============================================================
|
|||
|
|
# 高考志愿家庭门户 — Docker Compose 编排文件
|
|||
|
|
# 用于群晖 NAS (Container Manager) 一键部署
|
|||
|
|
#
|
|||
|
|
# 架构:
|
|||
|
|
# nginx (80) → 静态报告 + 导航首页
|
|||
|
|
# backend (5000) → 问卷 API + SQLite 存储
|
|||
|
|
#
|
|||
|
|
# 访问: http://<NAS_IP>: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
|