Dockerfile 807 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 requirements.txt /tmp/requirements.txt
  7. RUN pip install --no-cache-dir -r /tmp/requirements.txt && \
  8. rm /tmp/requirements.txt
  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", "-"]