Files
ailine/docker/docker-compose.yml
root c2a9e9187a
Some checks failed
构建并部署 AI Agent 服务 / deploy (push) Has been cancelled
fix: 修复 docker-compose.yml 环境变量读取问题
问题:
- 没有指定 env_file,导致无法读取 docker/.env 文件
- DB_PASSWORD 被硬编码了

修复:
- 添加 env_file: .env 配置
- DB_PASSWORD 改为从环境变量读取
2026-05-01 01:23:06 +08:00

106 lines
4.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

services:
backend:
build:
context: .. # 构建上下文为项目根目录
dockerfile: docker/backend/Dockerfile
container_name: ai-backend
env_file:
- .env # 读取 docker/.env 文件
environment:
# =========================================================================
# ⭐ 敏感密钥配置 - 必须配置(本地:.env 文件 | CI/CDSecrets
# =========================================================================
- ZHIPUAI_API_KEY=${ZHIPUAI_API_KEY} # ⭐ 敏感密钥配置
- DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY} # ⭐ 敏感密钥配置
- LLAMACPP_API_KEY=${LLAMACPP_API_KEY} # ⭐ 敏感密钥配置
# =========================================================================
# PostgreSQL 数据库配置
# =========================================================================
- DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT}
- DB_USER=${DB_USER}
- DB_PASSWORD=${DB_PASSWORD}
- DB_NAME=${DB_NAME}
- DB_URI=${DB_URI}
# =========================================================================
# Qdrant 向量数据库配置URL + API密钥 配对)
# =========================================================================
- QDRANT_URL=http://115.190.121.151:6333
- QDRANT_API_KEY=${QDRANT_API_KEY:?请配置 QDRANT_API_KEY本地.env 文件 | CI/CDSecrets} # ⭐ 敏感密钥配置
- QDRANT_COLLECTION_NAME=mem0_user_memories
# =========================================================================
# llama.cpp 服务配置URL + API密钥 配对)
# =========================================================================
# 主 LLM 服务 (Gemma-4-E2B GGUF) - Docker host 端口 18000
- VLLM_BASE_URL=http://host.docker.internal:18000/v1
# Embedding 服务 (Qwen3-Embedding-0.6B GGUF) - Docker host 端口 18001
- LLAMACPP_EMBEDDING_URL=http://host.docker.internal:18001/v1
# Reranker 服务 (bge-reranker-v2-m3) - Docker host 端口 18002
- LLAMACPP_RERANKER_URL=http://host.docker.internal:18002/v1
# =========================================================================
# RAG 索引构建配置(非敏感)
# =========================================================================
- RAG_COLLECTION_NAME=rag_documents
- RAG_CHUNK_SIZE=500
- RAG_CHUNK_OVERLAP=50
- RAG_PARENT_CHUNK_SIZE=1000
- RAG_CHILD_CHUNK_SIZE=200
- RAG_PARENT_CHUNK_OVERLAP=100
- RAG_CHILD_CHUNK_OVERLAP=20
- RAG_STRATEGY=parent-child
- RAG_STORAGE_TYPE=postgres
# =========================================================================
# 日志调试配置(可通过 .env 覆盖)
# =========================================================================
- LOG_LEVEL=${LOG_LEVEL:-WARNING}
- DEBUG=${DEBUG:-false}
- ENABLE_GRAPH_TRACE=${ENABLE_GRAPH_TRACE:-false}
# =========================================================================
# 应用行为配置
# =========================================================================
- BACKEND_PORT=8079
- MEMORY_SUMMARIZE_INTERVAL=${MEMORY_SUMMARIZE_INTERVAL:-10}
# =========================================================================
# 前端通信地址Docker 内部网络)
# =========================================================================
- API_URL=http://backend:8079/chat
volumes:
- ../data/user_docs:/app/data/user_docs # 挂载文档目录
- ../logs:/app/logs
networks:
- ai-network
# ⭐ 移除对 postgres 和 qdrant 的依赖(使用远程服务)
restart: unless-stopped
ports:
- "8079:8079"
frontend:
build:
context: ..
dockerfile: docker/frontend/Dockerfile
container_name: ai-frontend
environment:
# Docker 内部网络使用服务名 'backend' 解析后端服务
- API_URL=http://backend:8079/chat
# volumes:
# - ../frontend/src:/app/src # 挂载源代码目录,修改立即生效
ports:
- "8501:8501"
networks:
- ai-network
depends_on:
- backend
restart: unless-stopped
networks:
ai-network:
driver: bridge