Dockerfile 819 B

123456789101112131415161718192021222324252627282930313233
  1. # ── 运行镜像 ──
  2. FROM python:3.12-slim
  3. ENV TZ=Asia/Shanghai
  4. RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
  5. WORKDIR /app
  6. COPY .venv-packages.tar.gz /tmp/pkgs.tar.gz
  7. RUN tar xzf /tmp/pkgs.tar.gz -C /usr/local/lib/python3.12/site-packages/ && \
  8. rm /tmp/pkgs.tar.gz
  9. COPY app/ app/
  10. COPY src/ src/
  11. COPY data/ data/
  12. RUN useradd -m -u 1000 appuser && \
  13. chown -R appuser:appuser /app && \
  14. mkdir -p /data/chroma_db && \
  15. chown -R appuser:appuser /data
  16. USER appuser
  17. EXPOSE 9000
  18. CMD ["python3", "-m", "gunicorn", "app.main:app", \
  19. "--worker-class", "uvicorn.workers.UvicornWorker", \
  20. "--bind", "0.0.0.0:9000", \
  21. "--workers", "2", \
  22. "--timeout", "300", \
  23. "--keep-alive", "10", \
  24. "--access-logfile", "-", \
  25. "--error-logfile", "-"]