docker-compose.yml 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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. command: ["/opt/maxkb-app/start.sh"]
  48. environment:
  49. MAXKB_CONFIG_TYPE: ENV
  50. MAXKB_DB_NAME: maxkb
  51. MAXKB_DB_HOST: postgres
  52. MAXKB_DB_PORT: 5432
  53. MAXKB_DB_USER: postgres
  54. MAXKB_DB_PASSWORD: postgres
  55. MAXKB_REDIS_HOST: redis
  56. MAXKB_REDIS_PORT: 6379
  57. MAXKB_REDIS_DB: 0
  58. MAXKB_CORE_WORKER: 4
  59. MAXKB_STATIC_PATH: /opt/maxkb-app/static
  60. ports:
  61. - "8080:8080"
  62. depends_on:
  63. postgres:
  64. condition: service_healthy
  65. redis:
  66. condition: service_healthy
  67. volumes:
  68. - model_data:/opt/maxkb-app/model/base
  69. - tmp_data:/opt/maxkb-app/tmp
  70. - log_data:/opt/maxkb-app/logs
  71. - static_data:/opt/maxkb-app/static
  72. networks:
  73. - maxkb-network
  74. restart: unless-stopped
  75. maxkb-celery:
  76. image: zhagent-backend:latest
  77. container_name: maxkb-celery
  78. command: ["python", "main.py", "dev", "celery"]
  79. environment:
  80. MAXKB_CONFIG_TYPE: ENV
  81. MAXKB_DB_NAME: maxkb
  82. MAXKB_DB_HOST: postgres
  83. MAXKB_DB_PORT: 5432
  84. MAXKB_DB_USER: postgres
  85. MAXKB_DB_PASSWORD: postgres
  86. MAXKB_REDIS_HOST: redis
  87. MAXKB_REDIS_PORT: 6379
  88. MAXKB_REDIS_DB: 0
  89. depends_on:
  90. postgres:
  91. condition: service_healthy
  92. redis:
  93. condition: service_healthy
  94. maxkb-web:
  95. condition: service_started
  96. volumes:
  97. - model_data:/opt/maxkb-app/model/base
  98. - tmp_data:/opt/maxkb-app/tmp
  99. - log_data:/opt/maxkb-app/logs
  100. networks:
  101. - maxkb-network
  102. restart: unless-stopped
  103. volumes:
  104. postgres_data:
  105. redis_data:
  106. model_data:
  107. tmp_data:
  108. log_data:
  109. static_data:
  110. networks:
  111. maxkb-network:
  112. driver: bridge