You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

docker-compose-base.yml 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. services:
  2. es01:
  3. container_name: ragflow-es-01
  4. profiles:
  5. - elasticsearch
  6. image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
  7. volumes:
  8. - esdata01:/usr/share/elasticsearch/data
  9. ports:
  10. - ${ES_PORT}:9200
  11. env_file: .env
  12. environment:
  13. - node.name=es01
  14. - ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
  15. - bootstrap.memory_lock=false
  16. - discovery.type=single-node
  17. - xpack.security.enabled=true
  18. - xpack.security.http.ssl.enabled=false
  19. - xpack.security.transport.ssl.enabled=false
  20. - TZ=${TIMEZONE}
  21. mem_limit: ${MEM_LIMIT}
  22. ulimits:
  23. memlock:
  24. soft: -1
  25. hard: -1
  26. healthcheck:
  27. test: ["CMD-SHELL", "curl http://localhost:9200"]
  28. interval: 10s
  29. timeout: 10s
  30. retries: 120
  31. networks:
  32. - ragflow
  33. restart: on-failure
  34. infinity:
  35. container_name: ragflow-infinity
  36. profiles:
  37. - infinity
  38. image: infiniflow/infinity:v0.5.0-dev5
  39. volumes:
  40. - infinity_data:/var/infinity
  41. ports:
  42. - ${INFINITY_THRIFT_PORT}:23817
  43. - ${INFINITY_HTTP_PORT}:23820
  44. - ${INFINITY_PSQL_PORT}:5432
  45. env_file: .env
  46. environment:
  47. - TZ=${TIMEZONE}
  48. mem_limit: ${MEM_LIMIT}
  49. ulimits:
  50. nofile:
  51. soft: 500000
  52. hard: 500000
  53. networks:
  54. - ragflow
  55. healthcheck:
  56. test: ["CMD", "curl", "http://localhost:23820/admin/node/current"]
  57. interval: 10s
  58. timeout: 10s
  59. retries: 120
  60. restart: on-failure
  61. mysql:
  62. # mysql:5.7 linux/arm64 image is unavailable.
  63. image: mysql:8.0.39
  64. container_name: ragflow-mysql
  65. env_file: .env
  66. environment:
  67. - MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}
  68. - TZ=${TIMEZONE}
  69. command:
  70. --max_connections=1000
  71. --character-set-server=utf8mb4
  72. --collation-server=utf8mb4_general_ci
  73. --default-authentication-plugin=mysql_native_password
  74. --tls_version="TLSv1.2,TLSv1.3"
  75. --init-file /data/application/init.sql
  76. ports:
  77. - ${MYSQL_PORT}:3306
  78. volumes:
  79. - mysql_data:/var/lib/mysql
  80. - ./init.sql:/data/application/init.sql
  81. networks:
  82. - ragflow
  83. healthcheck:
  84. test: ["CMD", "mysqladmin" ,"ping", "-uroot", "-p${MYSQL_PASSWORD}"]
  85. interval: 10s
  86. timeout: 10s
  87. retries: 3
  88. restart: on-failure
  89. minio:
  90. image: quay.io/minio/minio:RELEASE.2023-12-20T01-00-02Z
  91. container_name: ragflow-minio
  92. command: server --console-address ":9001" /data
  93. ports:
  94. - ${MINIO_PORT}:9000
  95. - ${MINIO_CONSOLE_PORT}:9001
  96. env_file: .env
  97. environment:
  98. - MINIO_ROOT_USER=${MINIO_USER}
  99. - MINIO_ROOT_PASSWORD=${MINIO_PASSWORD}
  100. - TZ=${TIMEZONE}
  101. volumes:
  102. - minio_data:/data
  103. networks:
  104. - ragflow
  105. restart: on-failure
  106. redis:
  107. image: valkey/valkey:8
  108. container_name: ragflow-redis
  109. command: redis-server --requirepass ${REDIS_PASSWORD} --maxmemory 128mb --maxmemory-policy allkeys-lru
  110. env_file: .env
  111. ports:
  112. - ${REDIS_PORT}:6379
  113. volumes:
  114. - redis_data:/data
  115. networks:
  116. - ragflow
  117. restart: on-failure
  118. volumes:
  119. esdata01:
  120. driver: local
  121. infinity_data:
  122. driver: local
  123. mysql_data:
  124. driver: local
  125. minio_data:
  126. driver: local
  127. redis_data:
  128. driver: local
  129. networks:
  130. ragflow:
  131. driver: bridge