docker-compose-base-gpu.yml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. services:
  2. es01:
  3. container_name: yusys-rag-es-01
  4. image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
  5. volumes:
  6. - esdata01:/usr/share/elasticsearch/data
  7. ports:
  8. - ${ES_PORT}:9200
  9. environment:
  10. - node.name=es01
  11. - ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
  12. - bootstrap.memory_lock=false
  13. - discovery.type=single-node
  14. - xpack.security.enabled=true
  15. - xpack.security.http.ssl.enabled=false
  16. - xpack.security.transport.ssl.enabled=false
  17. - TZ=${TIMEZONE}
  18. mem_limit: ${MEM_LIMIT}
  19. ulimits:
  20. memlock:
  21. soft: -1
  22. hard: -1
  23. healthcheck:
  24. test: ["CMD-SHELL", "curl http://localhost:9200"]
  25. interval: 10s
  26. timeout: 10s
  27. retries: 120
  28. networks:
  29. - yusys-rag
  30. restart: always
  31. mysql:
  32. image: docker.byai.uk/library/mysql:5.7.44
  33. container_name: yusys-rag-mysql
  34. environment:
  35. - MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}
  36. - TZ=${TIMEZONE}
  37. command:
  38. --max_connections=1000
  39. --character-set-server=utf8mb4
  40. --collation-server=utf8mb4_general_ci
  41. --tls_version="TLSv1.2,TLSv1.3"
  42. --init-file /data/application/init.sql
  43. ports:
  44. - ${MYSQL_PORT}:3306
  45. volumes:
  46. - mysql_data:/var/lib/mysql
  47. - ./init.sql:/data/application/init.sql
  48. networks:
  49. - yusys-rag
  50. healthcheck:
  51. test: ["CMD", "mysqladmin" ,"ping", "-uroot", "-p${MYSQL_PASSWORD}"]
  52. interval: 10s
  53. timeout: 10s
  54. retries: 3
  55. restart: always
  56. minio:
  57. image: quay.io/minio/minio:RELEASE.2024-09-22T00-33-43Z
  58. container_name: yusys-rag-minio
  59. command: server --console-address ":9001" /data
  60. ports:
  61. - ${MINIO_PORT}:9000
  62. - ${MINIO_CONSOLE_PORT}:9001
  63. environment:
  64. - MINIO_ROOT_USER=${MINIO_USER}
  65. - MINIO_ROOT_PASSWORD=${MINIO_PASSWORD}
  66. - TZ=${TIMEZONE}
  67. volumes:
  68. - minio_data:/data
  69. networks:
  70. - yusys-rag
  71. restart: always
  72. redis:
  73. image: docker.byai.uk/library/redis:7.2.4
  74. container_name: yusys-rag-redis
  75. command: redis-server --requirepass ${REDIS_PASSWORD} --maxmemory 128mb --maxmemory-policy allkeys-lru
  76. ports:
  77. - ${REDIS_PORT}:6379
  78. volumes:
  79. - redis_data:/data
  80. networks:
  81. - yusys-rag
  82. restart: always
  83. gotenberg:
  84. image: docker.byai.uk/gotenberg/gotenberg:8.9.1
  85. command:
  86. - gotenberg
  87. - '--api-port=3000'
  88. - '--api-timeout=60s'
  89. - '--api-disable-health-check-logging'
  90. - '--libreoffice-restart-after=10'
  91. - '--libreoffice-auto-start'
  92. - '--libreoffice-start-timeout=10s'
  93. - '--libreoffice-max-queue-size=50'
  94. - '--gotenberg-graceful-shutdown-duration=30s'
  95. expose:
  96. - "3000"
  97. deploy:
  98. replicas: 2
  99. endpoint_mode: dnsrr
  100. healthcheck:
  101. test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
  102. interval: 10s
  103. timeout: 1s
  104. retries: 3
  105. user: "1001"
  106. networks:
  107. - yusys-rag
  108. restart: always
  109. unstructured-api:
  110. image: downloads.unstructured.io/unstructured-io/unstructured-api:0.0.80
  111. expose:
  112. - "8000"
  113. volumes:
  114. - ./huggingface:/home/notebook-user/.cache/huggingface
  115. deploy:
  116. replicas: 4
  117. endpoint_mode: dnsrr
  118. networks:
  119. - yusys-rag
  120. restart: always
  121. llm-infinity:
  122. image: docker.byai.uk/michaelf34/infinity:0.0.55
  123. container_name: yusys-rag-infinity
  124. command: ["v2"]
  125. environment:
  126. - HF_ENDPOINT=https://hf-mirror.com
  127. - INFINITY_PORT=8781
  128. - INFINITY_MODEL_ID=BAAI/bge-reranker-v2-m3;BAAI/bge-large-zh;
  129. ports:
  130. - "8781:8781"
  131. volumes:
  132. - ./huggingface:/app/.cache/huggingface
  133. deploy:
  134. resources:
  135. reservations:
  136. devices:
  137. - driver: nvidia
  138. device_ids: ['4']
  139. # count: all
  140. capabilities: [gpu]
  141. networks:
  142. - yusys-rag
  143. restart: always
  144. doc-parser:
  145. image: 192.168.107.2:5000/yusyscloud/llm-doc-parser:dev-32
  146. container_name: yusys-rag-doc
  147. environment:
  148. - UNSTRUCTURED_API_URL=http://unstructured-api:8000/general/v0/general
  149. - SPLIT_PDF_CONCURRENCY_LEVEL=15
  150. ports:
  151. - "8023:8023"
  152. volumes:
  153. - ./huggingface:/root/.cache/huggingface
  154. deploy:
  155. resources:
  156. reservations:
  157. devices:
  158. - driver: nvidia
  159. device_ids: ['4']
  160. #count: all
  161. capabilities: [gpu]
  162. networks:
  163. - yusys-rag
  164. restart: always
  165. volumes:
  166. esdata01:
  167. driver: local
  168. mysql_data:
  169. driver: local
  170. minio_data:
  171. driver: local
  172. redis_data:
  173. driver: local
  174. networks:
  175. yusys-rag:
  176. driver: bridge