# ---------- 基础镜像 ----------
# 使用精简版 Python 3.12 镜像，体积小
FROM python:3.12-slim

# 环境变量：
#   PYTHONUNBUFFERED=1 让 print / 日志实时输出，不缓存
#   PYTHONDONTWRITEBYTECODE=1 不生成 .pyc，保持镜像干净
ENV PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1 \
    TZ=Asia/Shanghai

WORKDIR /app

# 先只拷贝依赖清单并安装，利用 Docker 层缓存（代码改动时不必重装依赖）
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip \
    && pip install --no-cache-dir -r requirements.txt

# 再拷贝项目源码
COPY . .

# 声明应用端口（与 main.py 保持一致）
EXPOSE 8002

# 启动命令：容器内必须监听 0.0.0.0，外部才能访问
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8002"]
