23 lines
829 B
Docker
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"]
|