docker-compose.yml 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. version: "3.8"
  2. services:
  3. cfc-backend:
  4. build:
  5. context: ../cfc-backend
  6. dockerfile: Dockerfile
  7. ports:
  8. - "9082:9082"
  9. environment:
  10. - SPRING_PROFILES_ACTIVE=prod
  11. - python.enabled=true
  12. - python.base-url=http://langgraph-svc:9000
  13. networks:
  14. - cfc-net
  15. restart: unless-stopped
  16. healthcheck:
  17. test: ["CMD", "curl", "-f", "http://localhost:9082/actuator/health"]
  18. interval: 30s
  19. timeout: 5s
  20. retries: 3
  21. langgraph-svc:
  22. build:
  23. context: .
  24. dockerfile: Dockerfile
  25. ports:
  26. - "9000:9000"
  27. env_file:
  28. - .env.production
  29. environment:
  30. - JAVA_BASE_URL=http://172.17.0.1:9082
  31. - JAVA_CONTEXT_URL=http://172.17.0.1:9082/api/ai/context
  32. - CHROMA_DB_PATH=/data/chroma_db
  33. - JSON_LOGS=true
  34. # LangSmith 三个变量从 env_file (.env.production) 读取,不再覆盖
  35. volumes:
  36. - langgraph-data:/data
  37. networks:
  38. - cfc-net
  39. restart: unless-stopped
  40. healthcheck:
  41. 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)"]
  42. interval: 30s
  43. timeout: 5s
  44. retries: 3
  45. prometheus:
  46. image: prom/prometheus:latest
  47. volumes:
  48. - ./prometheus.yml:/etc/prometheus/prometheus.yml
  49. - prometheus-data:/prometheus
  50. networks:
  51. - cfc-net
  52. restart: unless-stopped
  53. profiles:
  54. - monitoring
  55. networks:
  56. cfc-net:
  57. volumes:
  58. langgraph-data:
  59. prometheus-data: