services: postgres: image: postgres:16 container_name: ai-postgres environment: POSTGRES_PASSWORD: mysecretpassword # 请替换为强密码 POSTGRES_DB: langgraph_db volumes: - pg_data:/var/lib/postgresql/data networks: - ai-network healthcheck: test: [ "CMD-SHELL", "pg_isready -U postgres" ] interval: 10s timeout: 5s retries: 5 restart: unless-stopped # 如需外部访问数据库,取消下面注释 # ports: # - "5432:5432" backend: build: context: .. # 构建上下文为项目根目录 dockerfile: docker/Dockerfile.backend container_name: ai-backend environment: - ZHIPUAI_API_KEY=${ZHIPUAI_API_KEY} - VLLM_LOCAL_KEY=${VLLM_LOCAL_KEY} - DB_URI=postgresql://postgres:mysecretpassword@postgres:5432/langgraph_db?sslmode=disable volumes: - ../data/user_docs:/app/data/user_docs # 挂载文档目录 - ../logs:/app/logs networks: - ai-network depends_on: postgres: condition: service_healthy restart: unless-stopped ports: - "8001:8001" frontend: build: context: .. dockerfile: docker/Dockerfile.frontend container_name: ai-frontend environment: # Docker 内部网络使用服务名 'backend' 解析后端服务 - API_URL=http://backend:8001/chat ports: - "8501:8501" networks: - ai-network depends_on: - backend restart: unless-stopped networks: ai-network: driver: bridge volumes: pg_data: