FROM python:3.11-slim WORKDIR /opt/maxkb-app ENV DEBIAN_FRONTEND=noninteractive \ PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ HF_HOME=/opt/maxkb-app/model/base \ TMPDIR=/opt/maxkb-app/tmp \ PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple \ PIP_TRUSTED_HOST=pypi.tuna.tsinghua.edu.cn RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ gcc \ python3-dev \ libpq-dev \ curl \ git \ wget \ && rm -rf /var/lib/apt/lists/* RUN pip install --no-cache-dir --upgrade pip setuptools wheel COPY pyproject.toml ./ RUN pip install --no-cache-dir --break-system-packages \ django==5.2.13 \ drf-spectacular==0.28.0 \ django-redis==6.0.0 \ django-db-connection-pool==1.2.6 \ django-mptt==0.17.0 \ djangorestframework==3.17.1 \ psycopg==3.2.9 \ python-dotenv==1.1.1 \ uuid-utils==0.14.0 \ captcha==0.7.1 \ pytz==2025.2 \ psutil==7.0.0 \ cffi==1.17.1 \ beautifulsoup4==4.13.4 \ jieba==0.42.1 \ langchain==1.2.15 \ langchain-core==1.2.31 \ langchain-openai==1.1.14 \ langchain-anthropic==1.4.0 \ langchain-community==0.4.1 \ langchain-deepseek==1.0.1 \ langchain-google-genai==4.2.2 \ langchain-mcp-adapters==0.2.2 \ langchain-huggingface==1.2.1 \ langchain-ollama==1.1.0 \ langchain-aws==1.4.4 \ langgraph==1.1.6 \ deepagents==0.5.3 \ numpy==1.26.4 \ qianfan==0.4.12.3 \ zhipuai==2.1.5.20250708 \ volcengine-python-sdk==4.0.5 \ boto3==1.42.46 \ tencentcloud-sdk-python==3.0.1420 \ xinference-client==1.7.1.post1 \ anthropic==0.89.0 \ dashscope==1.25.16 \ celery==5.5.3 \ django-celery-beat==2.8.1 \ celery-once==3.0.1 \ django-apscheduler==0.7.0 \ html2text==2025.4.15 \ openpyxl==3.1.5 \ python-docx==1.2.0 \ xlrd==2.0.2 \ xlwt==1.3.0 \ pymupdf==1.26.3 \ pypdf==6.10.2 \ pydub==0.25.1 \ gunicorn==23.0.0 \ python-daemon==3.1.2 \ websockets==15.0.1 \ cohere==5.17.0 \ jsonpath-ng==1.8.0 \ sentence-transformers==5.0.0 RUN pip install --no-cache-dir --break-system-packages torch==2.8.0 --index-url https://pypi.tuna.tsinghua.edu.cn/simple COPY apps/ ./apps/ COPY main.py ./ RUN mkdir -p /opt/maxkb-app/model/base /opt/maxkb-app/tmp /opt/maxkb-app/logs EXPOSE 8080 CMD ["python", "main.py", "start", "all"]