services: es01: container_name: yusys-rag-es-01 image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION} volumes: - esdata01:/usr/share/elasticsearch/data ports: - ${ES_PORT}:9200 environment: - node.name=es01 - ELASTIC_PASSWORD=${ELASTIC_PASSWORD} - bootstrap.memory_lock=false - discovery.type=single-node - xpack.security.enabled=true - xpack.security.http.ssl.enabled=false - xpack.security.transport.ssl.enabled=false - TZ=${TIMEZONE} mem_limit: ${MEM_LIMIT} ulimits: memlock: soft: -1 hard: -1 healthcheck: test: ["CMD-SHELL", "curl http://localhost:9200"] interval: 10s timeout: 10s retries: 120 networks: - yusys-rag restart: always mysql: image: docker.byai.uk/library/mysql:5.7.44 container_name: yusys-rag-mysql environment: - MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD} - TZ=${TIMEZONE} command: --max_connections=1000 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --tls_version="TLSv1.2,TLSv1.3" --init-file /data/application/init.sql ports: - ${MYSQL_PORT}:3306 volumes: - mysql_data:/var/lib/mysql - ./init.sql:/data/application/init.sql networks: - yusys-rag healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-uroot", "-p${MYSQL_PASSWORD}"] interval: 10s timeout: 10s retries: 3 restart: always minio: image: quay.io/minio/minio:RELEASE.2024-09-22T00-33-43Z container_name: yusys-rag-minio command: server --console-address ":9001" /data ports: - ${MINIO_PORT}:9000 - ${MINIO_CONSOLE_PORT}:9001 environment: - MINIO_ROOT_USER=${MINIO_USER} - MINIO_ROOT_PASSWORD=${MINIO_PASSWORD} - TZ=${TIMEZONE} volumes: - minio_data:/data networks: - yusys-rag restart: always redis: image: docker.byai.uk/library/redis:7.2.4 container_name: yusys-rag-redis command: redis-server --requirepass ${REDIS_PASSWORD} --maxmemory 128mb --maxmemory-policy allkeys-lru ports: - ${REDIS_PORT}:6379 volumes: - redis_data:/data networks: - yusys-rag restart: always gotenberg: image: docker.byai.uk/gotenberg/gotenberg:8.9.1 command: - gotenberg - '--api-port=3000' - '--api-timeout=60s' - '--api-disable-health-check-logging' - '--libreoffice-restart-after=10' - '--libreoffice-auto-start' - '--libreoffice-start-timeout=10s' - '--libreoffice-max-queue-size=50' - '--gotenberg-graceful-shutdown-duration=30s' expose: - "3000" deploy: replicas: 2 endpoint_mode: dnsrr healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/health"] interval: 10s timeout: 1s retries: 3 user: "1001" networks: - yusys-rag restart: always unstructured-api: image: downloads.unstructured.io/unstructured-io/unstructured-api:0.0.80 expose: - "8000" volumes: - ./huggingface:/home/notebook-user/.cache/huggingface deploy: replicas: 4 endpoint_mode: dnsrr networks: - yusys-rag restart: always llm-infinity: image: docker.byai.uk/michaelf34/infinity:0.0.55 container_name: yusys-rag-infinity command: ["v2"] environment: - HF_ENDPOINT=https://hf-mirror.com - INFINITY_PORT=8781 - INFINITY_MODEL_ID=BAAI/bge-reranker-v2-m3;BAAI/bge-large-zh; ports: - "8781:8781" volumes: - ./huggingface:/app/.cache/huggingface deploy: resources: reservations: devices: - driver: nvidia device_ids: ['4'] # count: all capabilities: [gpu] networks: - yusys-rag restart: always doc-parser: image: 192.168.107.2:5000/yusyscloud/llm-doc-parser:dev-32 container_name: yusys-rag-doc environment: - UNSTRUCTURED_API_URL=http://unstructured-api:8000/general/v0/general - SPLIT_PDF_CONCURRENCY_LEVEL=15 ports: - "8023:8023" volumes: - ./huggingface:/root/.cache/huggingface deploy: resources: reservations: devices: - driver: nvidia device_ids: ['4'] #count: all capabilities: [gpu] networks: - yusys-rag restart: always volumes: esdata01: driver: local mysql_data: driver: local minio_data: driver: local redis_data: driver: local networks: yusys-rag: driver: bridge