docker-compose.yml 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # =========================================================================
  2. # 智能股票分析助手 — Docker Compose 编排文件
  3. #
  4. # 启动: docker compose up -d
  5. # 停止: docker compose down
  6. # 查看日志: docker compose logs -f
  7. # =========================================================================
  8. version: '3.8'
  9. services:
  10. # =========================================================================
  11. # 后端服务 — FastAPI
  12. # =========================================================================
  13. backend:
  14. build:
  15. context: .
  16. dockerfile: backend/Dockerfile
  17. container_name: stock-analyzer-backend
  18. ports:
  19. - "8000:8000"
  20. volumes:
  21. # 持久化 SQLite 数据库
  22. - stock_data:/app/data
  23. environment:
  24. - PYTHONUNBUFFERED=1
  25. restart: unless-stopped
  26. healthcheck:
  27. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/v1/system/health')"]
  28. interval: 30s
  29. timeout: 10s
  30. retries: 3
  31. start_period: 10s
  32. # =========================================================================
  33. # 前端服务 — Nginx + Vue3 SPA
  34. # =========================================================================
  35. frontend:
  36. build:
  37. context: .
  38. dockerfile: frontend/Dockerfile
  39. container_name: stock-analyzer-frontend
  40. ports:
  41. - "8080:80"
  42. depends_on:
  43. - backend
  44. restart: unless-stopped
  45. volumes:
  46. stock_data:
  47. name: stock_analyzer_data