Dockerfile 803 B

1234567891011121314151617181920212223242526272829303132
  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 data/ data/
  11. RUN useradd -m -u 1000 appuser && \
  12. chown -R appuser:appuser /app && \
  13. mkdir -p /data/chroma_db && \
  14. chown -R appuser:appuser /data
  15. USER appuser
  16. EXPOSE 9000
  17. CMD ["python3", "-m", "gunicorn", "app.main:app", \
  18. "--worker-class", "uvicorn.workers.UvicornWorker", \
  19. "--bind", "0.0.0.0:9000", \
  20. "--workers", "2", \
  21. "--timeout", "60", \
  22. "--keep-alive", "10", \
  23. "--access-logfile", "-", \
  24. "--error-logfile", "-"]