docker-compose.yml 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. version: "3.9"
  2. # ============================================================
  3. # LambdaAgentPaaS — 一键部署 Compose 文件
  4. #
  5. # 快速启动:
  6. # Mac/Linux: ./deploy/start.sh
  7. # Windows: deploy\start.bat
  8. #
  9. # 手动启动 (已配置好 .env):
  10. # docker compose up -d
  11. #
  12. # 生产模式 (PostgreSQL + Redis):
  13. # docker compose --profile prod up -d
  14. #
  15. # 数据位置:
  16. # 宿主机: ~/.agentpaas/data/ (由启动脚本挂载)
  17. # 容器内: /data/
  18. # ============================================================
  19. services:
  20. # ── AgentPaaS 主服务 ─────────────────────────────────────
  21. agentpaas:
  22. image: lambdagentpaas:latest
  23. build:
  24. context: .
  25. dockerfile: Dockerfile
  26. args:
  27. # 国内网络可改为 https://pypi.tuna.tsinghua.edu.cn/simple
  28. PIP_INDEX_URL: ${PIP_INDEX_URL:-https://pypi.org/simple}
  29. container_name: lambdagentpaas
  30. ports:
  31. - "${AGENTPAAS_PORT:-8000}:8000"
  32. volumes:
  33. # 所有持久化数据挂载到 /data
  34. - "${AGENTPAAS_DATA_DIR}:/data"
  35. environment:
  36. AGENTPAAS_DATA_DIR: "/data"
  37. AGENTPAAS_HOST: "0.0.0.0"
  38. AGENTPAAS_PORT: "8000"
  39. AGENTPAAS_DEBUG: "${AGENTPAAS_DEBUG:-false}"
  40. AGENTPAAS_MASTER_KEY: "${AGENTPAAS_MASTER_KEY}"
  41. AGENTPAAS_LOG_LEVEL: "${AGENTPAAS_LOG_LEVEL:-INFO}"
  42. AGENTPAAS_LOG_FORMAT: "${AGENTPAAS_LOG_FORMAT:-console}"
  43. AGENTPAAS_WORKSPACE_RETENTION_DAYS: "${AGENTPAAS_WORKSPACE_RETENTION_DAYS:-30}"
  44. # LLM 提供商 API Keys
  45. DASHSCOPE_API_KEY: "${DASHSCOPE_API_KEY:-}"
  46. OPENAI_API_KEY: "${OPENAI_API_KEY:-}"
  47. ANTHROPIC_API_KEY: "${ANTHROPIC_API_KEY:-}"
  48. DEEPSEEK_API_KEY: "${DEEPSEEK_API_KEY:-}"
  49. ZHIPU_API_KEY: "${ZHIPU_API_KEY:-}"
  50. MOONSHOT_API_KEY: "${MOONSHOT_API_KEY:-}"
  51. # 生产数据库 (仅在 prod profile 下生效)
  52. AGENTPAAS_DATABASE_URL: "${AGENTPAAS_DATABASE_URL:-}"
  53. AGENTPAAS_REDIS_URL: "${AGENTPAAS_REDIS_URL:-}"
  54. restart: unless-stopped
  55. healthcheck:
  56. test: ["CMD", "curl", "-sf", "http://localhost:8000/health"]
  57. interval: 30s
  58. timeout: 10s
  59. retries: 3
  60. start_period: 40s
  61. # ── PostgreSQL(仅 prod profile)────────────────────────
  62. db:
  63. image: postgres:16-alpine
  64. profiles: ["prod"]
  65. container_name: lambdagentpaas-db
  66. environment:
  67. POSTGRES_DB: agentpaas
  68. POSTGRES_USER: agentpaas
  69. POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:?请在 .env 中设置 POSTGRES_PASSWORD}"
  70. volumes:
  71. - pgdata:/var/lib/postgresql/data
  72. restart: unless-stopped
  73. healthcheck:
  74. test: ["CMD-SHELL", "pg_isready -U agentpaas"]
  75. interval: 10s
  76. timeout: 5s
  77. retries: 5
  78. # ── Redis(仅 prod profile)─────────────────────────────
  79. redis:
  80. image: redis:7-alpine
  81. profiles: ["prod"]
  82. container_name: lambdagentpaas-redis
  83. volumes:
  84. - redisdata:/data
  85. restart: unless-stopped
  86. healthcheck:
  87. test: ["CMD", "redis-cli", "ping"]
  88. interval: 10s
  89. timeout: 5s
  90. retries: 5
  91. volumes:
  92. pgdata:
  93. redisdata: