# ---------- 基础镜像 ---------- # 使用精简版 Python 3.12 镜像,体积小 FROM python:3.12-slim # 环境变量: # PYTHONUNBUFFERED=1 让 print / 日志实时输出,不缓存 # PYTHONDONTWRITEBYTECODE=1 不生成 .pyc,保持镜像干净 ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ TZ=Asia/Shanghai WORKDIR /app # 先只拷贝依赖清单并安装,利用 Docker 层缓存(代码改动时不必重装依赖) COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip \ && pip install --no-cache-dir -r requirements.txt # 再拷贝项目源码 COPY . . # 声明应用端口(与 main.py 保持一致) EXPOSE 8002 # 启动命令:容器内必须监听 0.0.0.0,外部才能访问 CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8002"]