# 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"]