docker-compose.yml 2.7 KB

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