Dockerfile 892 B

1234567891011121314151617181920212223242526272829303132333435
  1. # syntax=docker/dockerfile:1
  2. FROM python:3.10-slim AS base
  3. ENV PYTHONDONTWRITEBYTECODE=1 \
  4. PYTHONUNBUFFERED=1 \
  5. PIP_NO_CACHE_DIR=1 \
  6. PIP_DISABLE_PIP_VERSION_CHECK=1 \
  7. UVICORN_WORKERS=2 \
  8. PORT=8002
  9. WORKDIR /app
  10. # 安装系统依赖(如需 Pillow 等编译依赖,可按需添加)
  11. RUN apt-get update \
  12. && apt-get install -y --no-install-recommends build-essential \
  13. && rm -rf /var/lib/apt/lists/*
  14. # 仅拷贝依赖文件,加速构建缓存
  15. COPY requirements.txt /app/backend/requirements.txt
  16. RUN pip install -r /app/backend/requirements.txt
  17. # 拷贝后端代码
  18. COPY . /app/backend
  19. # 创建非 root 用户(更安全)
  20. RUN useradd -m appuser && chown -R appuser:appuser /app
  21. USER appuser
  22. EXPOSE 8000
  23. # 生产环境不需要 reload
  24. CMD ["sh", "-c", "uvicorn backend.api.ai_swap_api:app --host 0.0.0.0 --port ${PORT} --workers ${UVICORN_WORKERS}"]