Dockerfile 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. # 使用轻量级 Python 基础镜像
  2. FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/python:3.11-slim
  3. # 设置工作目录
  4. WORKDIR /app
  5. # 环境变量优化
  6. ENV PYTHONDONTWRITEBYTECODE=1 \
  7. PYTHONUNBUFFERED=1 \
  8. PIP_DISABLE_PIP_VERSION_CHECK=on \
  9. TZ=Asia/Shanghai \
  10. PATH="/root/.local/bin:$PATH" \
  11. DEBIAN_FRONTEND=noninteractive
  12. # 替换 apt 源(国内构建会快很多,可选)
  13. RUN sed -i 's|http://deb.debian.org/debian|http://mirrors.aliyun.com/debian|g' /etc/apt/sources.list \
  14. && sed -i 's|http://security.debian.org/debian-security|http://mirrors.aliyun.com/debian-security|g' /etc/apt/sources.list
  15. # 安装系统依赖(如果 requirements 里需要编译 C 扩展)
  16. RUN apt-get update && apt-get install -y --no-install-recommends \
  17. build-essential \
  18. curl \
  19. tzdata \
  20. && rm -rf /var/lib/apt/lists/*
  21. # 先复制 requirements 并安装依赖(利用缓存)
  22. COPY requirements.txt .
  23. RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
  24. # 再复制项目文件
  25. COPY . .
  26. # 暴露端口
  27. EXPOSE 8001
  28. # 启动命令
  29. CMD ["hypercorn", "vector_app:app", "--config", "config.toml"]