# ============================================================
# Flask 后端 Dockerfile
# 基于 Python 3.12 Alpine（精简镜像，约 50MB）
# ============================================================
FROM python:3.12-alpine

# 设置工作目录
WORKDIR /app

# 先复制依赖文件（利用 Docker 缓存层，代码改动时不用重装依赖）
COPY requirements.txt .

# 安装 Python 依赖
# --no-cache-dir: 不缓存 pip 包，减小镜像体积
RUN pip install --no-cache-dir -r requirements.txt

# 复制应用代码
COPY . .

# 创建数据目录（SQLite 数据库文件存放位置）
RUN mkdir -p /app/data

# 暴露端口（Flask 默认 5000）
EXPOSE 5000

# 启动命令：初始化数据库 + 启动 Flask
# waitress-serve 是生产级 WSGI 服务器，比 flask run 更稳定
CMD ["sh", "-c", "python seed_data.py && python -m flask run --host=0.0.0.0 --port=5000"]
