Files

46 lines
1.7 KiB
YAML
Raw Permalink Normal View History

2026-06-24 13:11:34 +08:00
# ============================================================
# 高考志愿家庭门户 — 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