diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..92078c9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,44 @@ +# 多阶段构建:构建阶段 +FROM python:3.11-slim AS builder + +# 设置工作目录 +WORKDIR /app + +# 安装系统依赖 +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + && rm -rf /var/lib/apt/lists/* + +# 复制 requirements.txt +COPY requirements.txt . + +# 创建虚拟环境并安装依赖 +RUN python -m venv /opt/venv +ENV PATH="/opt/venv/bin:$PATH" +RUN pip install --upgrade pip setuptools wheel && \ + pip install --no-cache-dir -r requirements.txt + +# 最终运行阶段 +FROM python:3.11-slim + +# 设置工作目录 +WORKDIR /app + +# 设置环境变量 +ENV PYTHONUNBUFFERED=1 \ + PYTHONDONTWRITEBYTECODE=1 \ + PATH="/opt/venv/bin:$PATH" + +# 从构建阶段复制虚拟环境 +COPY --from=builder /opt/venv /opt/venv + +# 复制应用代码 +COPY . . + +# 暴露端口 +EXPOSE 8000 + +# 启动命令 +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] + +