# 后端镜像：FastAPI + SQLAlchemy
FROM python:3.11-slim

# PYTHONPATH=/app 让代码里的 `from sqlalchemy_fastapi_demo_1.xxx import ...` 能正常导入
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1 \
    PYTHONPATH=/app

WORKDIR /app

# 先只装依赖：改业务代码时不会重装依赖，能复用缓存
COPY requirements.txt /tmp/requirements.txt
RUN pip install --no-cache-dir -r /tmp/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 把整个项目复制到 /app/sqlalchemy_fastapi_demo_1（保留包名，导入才能对上）
COPY . /app/sqlalchemy_fastapi_demo_1/

EXPOSE 8004

# 注意模块路径要带包名；--host 必须是 0.0.0.0，否则容器外访问不到
CMD ["uvicorn", "sqlalchemy_fastapi_demo_1.main:app", "--host", "0.0.0.0", "--port", "8004"]
