# ── 运行镜像 ── FROM python:3.12-slim ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone WORKDIR /app COPY .venv-packages.tar.gz /tmp/pkgs.tar.gz RUN tar xzf /tmp/pkgs.tar.gz -C /usr/local/lib/python3.12/site-packages/ && \ rm /tmp/pkgs.tar.gz COPY app/ app/ COPY src/ src/ COPY data/ data/ RUN useradd -m -u 1000 appuser && \ chown -R appuser:appuser /app && \ mkdir -p /data/chroma_db && \ chown -R appuser:appuser /data USER appuser EXPOSE 9000 CMD ["python3", "-m", "gunicorn", "app.main:app", \ "--worker-class", "uvicorn.workers.UvicornWorker", \ "--bind", "0.0.0.0:9000", \ "--workers", "2", \ "--timeout", "300", \ "--keep-alive", "10", \ "--access-logfile", "-", \ "--error-logfile", "-"]