docker-compose.yml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. services:
  2. # PostgreSQL with pgvector
  3. db:
  4. image: pgvector/pgvector:pg16
  5. container_name: zhagent-db
  6. restart: always
  7. environment:
  8. POSTGRES_DB: ${DB_NAME:-maxkb}
  9. POSTGRES_USER: ${DB_USER:-postgres}
  10. POSTGRES_PASSWORD: ${DB_PASSWORD:-zhagent123}
  11. ports:
  12. - "5432:5432"
  13. volumes:
  14. - ${DATA_PATH:-./data}/postgresql:/var/lib/postgresql/data
  15. healthcheck:
  16. test: ["CMD-SHELL", "pg_isready -U postgres"]
  17. interval: 10s
  18. timeout: 5s
  19. retries: 5
  20. # Redis
  21. redis:
  22. image: redis:7-alpine
  23. container_name: zhagent-redis
  24. restart: always
  25. ports:
  26. - "6379:6379"
  27. volumes:
  28. - ${DATA_PATH:-./data}/redis:/data
  29. healthcheck:
  30. test: ["CMD", "redis-cli", "ping"]
  31. interval: 10s
  32. timeout: 5s
  33. retries: 5
  34. # Django Web
  35. web:
  36. build: .
  37. container_name: zhagent-web
  38. restart: always
  39. command: python main.py dev web
  40. ports:
  41. - "8080:8080"
  42. environment:
  43. - MAXKB_CONFIG_TYPE=ENV
  44. - MAXKB_DB_HOST=db
  45. - MAXKB_DB_PORT=5432
  46. - MAXKB_DB_USER=${DB_USER:-postgres}
  47. - MAXKB_DB_PASSWORD=${DB_PASSWORD:-zhagent123}
  48. - MAXKB_DB_NAME=${DB_NAME:-maxkb}
  49. - MAXKB_REDIS_HOST=redis
  50. - MAXKB_REDIS_PORT=6379
  51. - MAXKB_REDIS_PASSWORD=${REDIS_PASSWORD:-}
  52. - MAXKB_REDIS_DB=${REDIS_DB:-0}
  53. - MAXKB_DEBUG=${DEBUG:-false}
  54. - MAXKB_APP_TITLE=${APP_TITLE:-智能体平台}
  55. - MAXKB_APP_VERSION=${APP_VERSION:-v1.0}
  56. - MAXKB_SSO_BASE_URL=${SSO_BASE_URL:-}
  57. - MAXKB_SSO_CLIENT_ID=${SSO_CLIENT_ID:-}
  58. - MAXKB_SSO_CLIENT_SECRET=${SSO_CLIENT_SECRET:-}
  59. - MAXKB_SSO_REDIRECT_URI=${SSO_REDIRECT_URI:-}
  60. - MAXKB_SSO_LOGOUT_REDIRECT_URL=${SSO_LOGOUT_REDIRECT_URL:-}
  61. - MAXKB_SAMPLE_CENTER_BASE_URL=${SAMPLE_CENTER_BASE_URL:-}
  62. - MAXKB_SAMPLE_CENTER_APP_ID=${SAMPLE_CENTER_APP_ID:-}
  63. - MAXKB_SAMPLE_CENTER_APP_SECRET=${SAMPLE_CENTER_APP_SECRET:-}
  64. volumes:
  65. - ${UPLOAD_PATH:-./data/uploads}:/app/uploads
  66. - ./apps/static:/app/apps/static
  67. depends_on:
  68. db:
  69. condition: service_healthy
  70. redis:
  71. condition: service_healthy
  72. # Celery Worker
  73. celery:
  74. build: .
  75. container_name: zhagent-celery
  76. restart: always
  77. command: python main.py dev celery
  78. environment:
  79. - MAXKB_CONFIG_TYPE=ENV
  80. - MAXKB_DB_HOST=db
  81. - MAXKB_DB_PORT=5432
  82. - MAXKB_DB_USER=${DB_USER:-postgres}
  83. - MAXKB_DB_PASSWORD=${DB_PASSWORD:-zhagent123}
  84. - MAXKB_DB_NAME=${DB_NAME:-maxkb}
  85. - MAXKB_REDIS_HOST=redis
  86. - MAXKB_REDIS_PORT=6379
  87. - MAXKB_REDIS_PASSWORD=${REDIS_PASSWORD:-}
  88. - MAXKB_REDIS_DB=${REDIS_DB:-0}
  89. - MAXKB_DEBUG=${DEBUG:-false}
  90. - MAXKB_APP_TITLE=${APP_TITLE:-智能体平台}
  91. - MAXKB_APP_VERSION=${APP_VERSION:-v1.0}
  92. - MAXKB_SSO_BASE_URL=${SSO_BASE_URL:-}
  93. - MAXKB_SSO_CLIENT_ID=${SSO_CLIENT_ID:-}
  94. - MAXKB_SSO_CLIENT_SECRET=${SSO_CLIENT_SECRET:-}
  95. - MAXKB_SSO_REDIRECT_URI=${SSO_REDIRECT_URI:-}
  96. - MAXKB_SSO_LOGOUT_REDIRECT_URL=${SSO_LOGOUT_REDIRECT_URL:-}
  97. - MAXKB_SAMPLE_CENTER_BASE_URL=${SAMPLE_CENTER_BASE_URL:-}
  98. - MAXKB_SAMPLE_CENTER_APP_ID=${SAMPLE_CENTER_APP_ID:-}
  99. - MAXKB_SAMPLE_CENTER_APP_SECRET=${SAMPLE_CENTER_APP_SECRET:-}
  100. volumes:
  101. - ${UPLOAD_PATH:-./data/uploads}:/app/uploads
  102. depends_on:
  103. db:
  104. condition: service_healthy
  105. redis:
  106. condition: service_healthy
  107. # Nginx for frontend
  108. nginx:
  109. image: nginx:alpine
  110. container_name: zhagent-nginx
  111. restart: always
  112. ports:
  113. - "80:80"
  114. volumes:
  115. - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
  116. - ./ui/dist/admin:/usr/share/nginx/admin:ro
  117. - ./ui/dist/builder:/usr/share/nginx/builder:ro
  118. - ./ui/dist/chat:/usr/share/nginx/chat:ro
  119. depends_on:
  120. - web