| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- version: "3.8"
- services:
- cfc-backend:
- build:
- context: ../cfc-backend
- dockerfile: Dockerfile
- ports:
- - "9082:9082"
- environment:
- - SPRING_PROFILES_ACTIVE=prod
- - python.enabled=true
- - python.base-url=http://langgraph-svc:9000
- networks:
- - cfc-net
- restart: unless-stopped
- healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost:9082/actuator/health"]
- interval: 30s
- timeout: 5s
- retries: 3
- langgraph-svc:
- image: cfc-langgraph-langgraph-svc:v3
- build:
- context: .
- dockerfile: Dockerfile
- ports:
- - "9000:9000"
- env_file:
- - .env.production
- environment:
- - JAVA_BASE_URL=http://172.17.0.1:9082
- - JAVA_CONTEXT_URL=http://172.17.0.1:9082/api/ai/context
- - CHROMA_DB_PATH=/data/chroma_db
- - JSON_LOGS=true
- # LangSmith 三个变量从 env_file (.env.production) 读取,不再覆盖
- volumes:
- # 共享 Java 文件上传目录(LangGraph 读取已上传的 PDF 文件)
- - /data/cfc-uploads:/data/cfc-uploads
- # Chroma 向量数据库持久化
- - langgraph-data:/data/chroma_db
- networks:
- - cfc-net
- restart: unless-stopped
- healthcheck:
- test: ["CMD", "python", "-c", "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://localhost:9000/health', timeout=5).status==200 else 1)"]
- interval: 30s
- timeout: 5s
- retries: 3
- prometheus:
- image: prom/prometheus:latest
- volumes:
- - ./prometheus.yml:/etc/prometheus/prometheus.yml
- - prometheus-data:/prometheus
- networks:
- - cfc-net
- restart: unless-stopped
- profiles:
- - monitoring
- networks:
- cfc-net:
- volumes:
- langgraph-data:
- prometheus-data:
|