Files

23 lines
829 B
Docker

# 后端镜像: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"]