# BookMate 后端镜像：FastAPI + SQLAlchemy async + SQLite
# 构建上下文是仓库根目录（docker-compose context: .），COPY 路径相对仓库根。
FROM python:3.12-slim

WORKDIR /app

ENV PYTHONUNBUFFERED=1 \
    PYTHONIOENCODING=utf-8 \
    PIP_NO_CACHE_DIR=1

# 先装依赖（利用层缓存）。大陆网络默认走清华 PyPI 镜像；可在构建时用 --build-arg 覆盖：
#   docker compose build --build-arg PIP_INDEX_URL=https://pypi.org/simple backend
ARG PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
COPY backend/requirements.txt /app/requirements.txt
RUN pip install -i "$PIP_INDEX_URL" -r /app/requirements.txt

# 应用代码；密钥与数据不打包进镜像（.env 由 compose env_file 注入，data/uploads 由卷挂载）
COPY backend/app /app/app

EXPOSE 8000

# 生产用：不挂 --reload
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
