Files
ailine/docker/backend/Dockerfile

90 lines
3.6 KiB
Docker
Raw Normal View History

FROM python:3.11-slim
WORKDIR /app
2026-04-16 00:31:33 +08:00
# =============================================================================
2026-04-21 22:07:20 +08:00
# 非敏感环境变量(固化在镜像中,可通过 .env 覆盖)
2026-04-16 00:31:33 +08:00
# =============================================================================
2026-04-21 18:41:14 +08:00
ENV PYTHONPATH=/app
2026-04-16 00:31:33 +08:00
2026-04-21 22:07:20 +08:00
# =============================================================================
# llama.cpp 服务配置Docker 部署标准端口映射)
# =============================================================================
# 主 LLM 服务 - Docker host 端口 18000
2026-04-17 01:26:05 +08:00
ENV VLLM_BASE_URL=http://host.docker.internal:18000/v1
2026-04-21 22:07:20 +08:00
# Embedding 服务 - Docker host 端口 18001
2026-04-17 01:26:05 +08:00
ENV LLAMACPP_EMBEDDING_URL=http://host.docker.internal:18001/v1
2026-04-21 22:07:20 +08:00
# Reranker 服务 - Docker host 端口 18002
ENV LLAMACPP_RERANKER_URL=http://host.docker.internal:18002/v1
2026-04-16 00:31:33 +08:00
2026-04-21 22:07:20 +08:00
# =============================================================================
# 数据库 & 向量库配置(非敏感部分)
# =============================================================================
# PostgreSQL敏感信息通过 .env 注入)
ENV DB_HOST=115.190.121.151
ENV DB_PORT=5432
ENV DB_USER=postgres
ENV DB_NAME=langgraph_db
# Qdrant敏感信息通过 .env 注入)
ENV QDRANT_URL=http://115.190.121.151:6333
2026-04-16 00:31:33 +08:00
ENV QDRANT_COLLECTION_NAME=mem0_user_memories
2026-04-21 22:07:20 +08:00
# =============================================================================
# RAG 索引构建配置(非敏感)
# =============================================================================
ENV RAG_COLLECTION_NAME=rag_documents
ENV RAG_CHUNK_SIZE=500
ENV RAG_CHUNK_OVERLAP=50
ENV RAG_PARENT_CHUNK_SIZE=1000
ENV RAG_CHILD_CHUNK_SIZE=200
ENV RAG_PARENT_CHUNK_OVERLAP=100
ENV RAG_CHILD_CHUNK_OVERLAP=20
ENV RAG_STRATEGY=parent-child
ENV RAG_STORAGE_TYPE=postgres
# =============================================================================
# 应用行为配置
# =============================================================================
2026-04-16 00:31:33 +08:00
ENV MEMORY_SUMMARIZE_INTERVAL=10
ENV ENABLE_GRAPH_TRACE=false
2026-04-21 22:07:20 +08:00
# =============================================================================
# 日志配置(生产环境默认值)
# =============================================================================
2026-04-16 00:31:33 +08:00
ENV LOG_LEVEL=WARNING
ENV DEBUG=false
# =============================================================================
# 安装依赖
# =============================================================================
2026-04-21 22:07:20 +08:00
# 复制本地模型文件到镜像(如果有)
2026-04-21 23:15:35 +08:00
# 注意docker/models/ 目录需要在构建上下文中存在
COPY docker/models/ /tmp/models/
2026-04-21 00:00:56 +08:00
2026-04-21 23:15:35 +08:00
# 安装本地模型 wheel如果有 .whl 文件)
RUN find /tmp/models -name "*.whl" -type f 2>/dev/null | head -1 | xargs -r pip install --no-cache-dir && \
rm -rf /tmp/models
2026-04-21 00:00:56 +08:00
2026-04-20 23:11:07 +08:00
# 设置 pip 国内镜像源
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 复制 requirement 并安装(增加超时时间)
2026-04-21 10:26:37 +08:00
COPY backend/requirements.txt .
RUN pip install --no-cache-dir --default-timeout=300 -r requirements.txt
2026-04-19 15:01:40 +08:00
# =============================================================================
2026-04-21 10:26:37 +08:00
# 复制项目代码
2026-04-19 15:01:40 +08:00
# =============================================================================
2026-04-21 10:26:37 +08:00
COPY backend/ ./
2026-04-16 00:31:33 +08:00
# =============================================================================
# 暴露端口
# =============================================================================
2026-04-21 10:26:37 +08:00
EXPOSE 8079
2026-04-16 00:31:33 +08:00
# =============================================================================
# 启动命令
2026-04-16 00:31:33 +08:00
# =============================================================================
2026-04-21 10:26:37 +08:00
CMD ["python", "app/backend.py"]