docker-compose.yml 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. services:
  2. postgres:
  3. image: pgvector/pgvector:pg16
  4. container_name: maxkb-postgres
  5. environment:
  6. POSTGRES_DB: maxkb
  7. POSTGRES_USER: postgres
  8. POSTGRES_PASSWORD: postgres
  9. volumes:
  10. - postgres_data:/var/lib/postgresql/data
  11. ports:
  12. - "5432:5432"
  13. healthcheck:
  14. test: ["CMD-SHELL", "pg_isready -U postgres"]
  15. interval: 5s
  16. timeout: 5s
  17. retries: 5
  18. networks:
  19. - maxkb-network
  20. redis:
  21. image: redis:latest
  22. container_name: maxkb-redis
  23. volumes:
  24. - redis_data:/data
  25. ports:
  26. - "6379:6379"
  27. healthcheck:
  28. test: ["CMD", "redis-cli", "ping"]
  29. interval: 5s
  30. timeout: 5s
  31. retries: 5
  32. networks:
  33. - maxkb-network
  34. maxkb-frontend:
  35. image: zhagent-frontend:latest
  36. container_name: maxkb-frontend
  37. ports:
  38. - "80:80"
  39. networks:
  40. - maxkb-network
  41. restart: unless-stopped
  42. depends_on:
  43. - maxkb-web
  44. maxkb-web:
  45. image: zhagent-backend:latest
  46. container_name: maxkb-web
  47. environment:
  48. MAXKB_CONFIG_TYPE: ENV
  49. MAXKB_DB_NAME: maxkb
  50. MAXKB_DB_HOST: postgres
  51. MAXKB_DB_PORT: 5432
  52. MAXKB_DB_USER: postgres
  53. MAXKB_DB_PASSWORD: postgres
  54. MAXKB_REDIS_HOST: redis
  55. MAXKB_REDIS_PORT: 6379
  56. MAXKB_REDIS_DB: 0
  57. MAXKB_CORE_WORKER: 4
  58. MAXKB_STATIC_PATH: /opt/maxkb-app/static
  59. ports:
  60. - "8080:8080"
  61. depends_on:
  62. postgres:
  63. condition: service_healthy
  64. redis:
  65. condition: service_healthy
  66. volumes:
  67. - model_data:/opt/maxkb-app/model/base
  68. - tmp_data:/opt/maxkb-app/tmp
  69. - log_data:/opt/maxkb-app/logs
  70. - static_data:/opt/maxkb-app/static
  71. networks:
  72. - maxkb-network
  73. restart: unless-stopped
  74. maxkb-celery:
  75. image: zhagent-backend:latest
  76. container_name: maxkb-celery
  77. command: ["python", "main.py", "dev", "celery"]
  78. environment:
  79. MAXKB_CONFIG_TYPE: ENV
  80. MAXKB_DB_NAME: maxkb
  81. MAXKB_DB_HOST: postgres
  82. MAXKB_DB_PORT: 5432
  83. MAXKB_DB_USER: postgres
  84. MAXKB_DB_PASSWORD: postgres
  85. MAXKB_REDIS_HOST: redis
  86. MAXKB_REDIS_PORT: 6379
  87. MAXKB_REDIS_DB: 0
  88. depends_on:
  89. postgres:
  90. condition: service_healthy
  91. redis:
  92. condition: service_healthy
  93. volumes:
  94. - model_data:/opt/maxkb-app/model/base
  95. - tmp_data:/opt/maxkb-app/tmp
  96. - log_data:/opt/maxkb-app/logs
  97. networks:
  98. - maxkb-network
  99. restart: unless-stopped
  100. volumes:
  101. postgres_data:
  102. redis_data:
  103. model_data:
  104. tmp_data:
  105. log_data:
  106. static_data:
  107. networks:
  108. maxkb-network:
  109. driver: bridge