2024-04-07 09:04:32 +08:00
|
|
|
services:
|
|
|
|
|
es01:
|
2024-11-14 00:08:55 +08:00
|
|
|
profiles:
|
|
|
|
|
- elasticsearch
|
2025-02-12 12:38:13 +08:00
|
|
|
image: elasticsearch:${STACK_VERSION}
|
2024-04-07 09:04:32 +08:00
|
|
|
volumes:
|
|
|
|
|
- esdata01:/usr/share/elasticsearch/data
|
2026-06-04 23:19:31 +08:00
|
|
|
# Official ES image ACL on /tmp denies writes for user elasticsearch (r-x only).
|
|
|
|
|
# entrypoint.sh needs a writable temp dir for bash here-documents.
|
|
|
|
|
tmpfs:
|
|
|
|
|
- /tmp:mode=1777,size=512m
|
2024-04-07 09:04:32 +08:00
|
|
|
ports:
|
|
|
|
|
- ${ES_PORT}:9200
|
2024-11-12 14:59:41 +08:00
|
|
|
env_file: .env
|
2024-04-07 09:04:32 +08:00
|
|
|
environment:
|
|
|
|
|
- node.name=es01
|
|
|
|
|
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
|
|
|
|
|
- bootstrap.memory_lock=false
|
2024-06-06 13:19:26 +08:00
|
|
|
- discovery.type=single-node
|
|
|
|
|
- xpack.security.enabled=true
|
|
|
|
|
- xpack.security.http.ssl.enabled=false
|
|
|
|
|
- xpack.security.transport.ssl.enabled=false
|
2024-12-17 16:48:40 +08:00
|
|
|
- cluster.routing.allocation.disk.watermark.low=5gb
|
|
|
|
|
- cluster.routing.allocation.disk.watermark.high=3gb
|
|
|
|
|
- cluster.routing.allocation.disk.watermark.flood_stage=2gb
|
2024-04-07 09:04:32 +08:00
|
|
|
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:
|
|
|
|
|
- ragflow
|
2025-12-04 15:18:13 +08:00
|
|
|
restart: unless-stopped
|
2024-11-12 14:59:41 +08:00
|
|
|
|
2025-04-24 16:03:31 +08:00
|
|
|
opensearch01:
|
|
|
|
|
profiles:
|
|
|
|
|
- opensearch
|
2026-02-24 02:50:02 +01:00
|
|
|
image: opensearchproject/opensearch:2.19.1
|
2025-04-24 16:03:31 +08:00
|
|
|
volumes:
|
|
|
|
|
- osdata01:/usr/share/opensearch/data
|
|
|
|
|
ports:
|
|
|
|
|
- ${OS_PORT}:9201
|
|
|
|
|
env_file: .env
|
|
|
|
|
environment:
|
|
|
|
|
- node.name=opensearch01
|
|
|
|
|
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
|
|
|
|
- OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_PASSWORD}
|
|
|
|
|
- bootstrap.memory_lock=false
|
|
|
|
|
- discovery.type=single-node
|
|
|
|
|
- plugins.security.disabled=false
|
|
|
|
|
- plugins.security.ssl.http.enabled=false
|
|
|
|
|
- plugins.security.ssl.transport.enabled=true
|
|
|
|
|
- cluster.routing.allocation.disk.watermark.low=5gb
|
|
|
|
|
- cluster.routing.allocation.disk.watermark.high=3gb
|
|
|
|
|
- cluster.routing.allocation.disk.watermark.flood_stage=2gb
|
|
|
|
|
- http.port=9201
|
|
|
|
|
mem_limit: ${MEM_LIMIT}
|
|
|
|
|
ulimits:
|
|
|
|
|
memlock:
|
|
|
|
|
soft: -1
|
|
|
|
|
hard: -1
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD-SHELL", "curl http://localhost:9201"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 10s
|
|
|
|
|
retries: 120
|
|
|
|
|
networks:
|
|
|
|
|
- ragflow
|
2025-12-04 15:18:13 +08:00
|
|
|
restart: unless-stopped
|
2025-04-24 16:03:31 +08:00
|
|
|
|
2024-11-14 00:08:55 +08:00
|
|
|
infinity:
|
|
|
|
|
profiles:
|
|
|
|
|
- infinity
|
2026-05-18 10:25:59 +08:00
|
|
|
image: infiniflow/infinity:v0.7.0
|
2024-11-14 00:08:55 +08:00
|
|
|
volumes:
|
|
|
|
|
- infinity_data:/var/infinity
|
2024-11-28 15:59:00 +08:00
|
|
|
- ./infinity_conf.toml:/infinity_conf.toml
|
|
|
|
|
command: ["-f", "/infinity_conf.toml"]
|
2024-11-14 00:08:55 +08:00
|
|
|
ports:
|
|
|
|
|
- ${INFINITY_THRIFT_PORT}:23817
|
|
|
|
|
- ${INFINITY_HTTP_PORT}:23820
|
|
|
|
|
- ${INFINITY_PSQL_PORT}:5432
|
|
|
|
|
env_file: .env
|
|
|
|
|
mem_limit: ${MEM_LIMIT}
|
|
|
|
|
ulimits:
|
|
|
|
|
nofile:
|
|
|
|
|
soft: 500000
|
|
|
|
|
hard: 500000
|
|
|
|
|
networks:
|
|
|
|
|
- ragflow
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "curl", "http://localhost:23820/admin/node/current"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 10s
|
|
|
|
|
retries: 120
|
2025-12-04 15:18:13 +08:00
|
|
|
restart: unless-stopped
|
2024-11-12 14:59:41 +08:00
|
|
|
|
2025-11-20 10:00:14 +08:00
|
|
|
oceanbase:
|
|
|
|
|
profiles:
|
|
|
|
|
- oceanbase
|
|
|
|
|
image: oceanbase/oceanbase-ce:4.4.1.0-100000032025101610
|
2026-06-09 13:04:05 +08:00
|
|
|
entrypoint: ["bash", "/root/boot/ragflow-oceanbase-entrypoint.sh"]
|
|
|
|
|
ulimits:
|
|
|
|
|
nofile:
|
|
|
|
|
soft: 655350
|
|
|
|
|
hard: 655350
|
2025-11-20 10:00:14 +08:00
|
|
|
volumes:
|
|
|
|
|
- ./oceanbase/data:/root/ob
|
|
|
|
|
- ./oceanbase/conf:/root/.obd/cluster
|
|
|
|
|
- ./oceanbase/init.d:/root/boot/init.d
|
2026-06-09 13:04:05 +08:00
|
|
|
- ./oceanbase-entrypoint.sh:/root/boot/ragflow-oceanbase-entrypoint.sh:ro
|
2025-11-20 10:00:14 +08:00
|
|
|
ports:
|
|
|
|
|
- ${OCEANBASE_PORT:-2881}:2881
|
|
|
|
|
env_file: .env
|
|
|
|
|
environment:
|
|
|
|
|
- MODE=normal
|
|
|
|
|
- OB_SERVER_IP=127.0.0.1
|
|
|
|
|
mem_limit: ${MEM_LIMIT}
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: [ 'CMD-SHELL', 'obclient -h127.0.0.1 -P2881 -uroot@${OB_TENANT_NAME:-ragflow} -p${OB_TENANT_PASSWORD:-infini_rag_flow} -e "CREATE DATABASE IF NOT EXISTS ${OCEANBASE_DOC_DBNAME:-ragflow_doc};"' ]
|
|
|
|
|
interval: 10s
|
|
|
|
|
retries: 30
|
|
|
|
|
start_period: 30s
|
|
|
|
|
timeout: 10s
|
|
|
|
|
networks:
|
|
|
|
|
- ragflow
|
2025-12-04 15:18:13 +08:00
|
|
|
restart: unless-stopped
|
2025-11-20 10:00:14 +08:00
|
|
|
|
2026-01-19 16:07:43 +08:00
|
|
|
seekdb:
|
|
|
|
|
profiles:
|
|
|
|
|
- seekdb
|
|
|
|
|
image: oceanbase/seekdb:latest
|
|
|
|
|
container_name: seekdb
|
|
|
|
|
volumes:
|
|
|
|
|
- ./seekdb:/var/lib/oceanbase
|
|
|
|
|
ports:
|
|
|
|
|
- ${SEEKDB_PORT:-2881}:2881
|
|
|
|
|
env_file: .env
|
|
|
|
|
environment:
|
|
|
|
|
- ROOT_PASSWORD=${SEEKDB_PASSWORD:-infini_rag_flow}
|
|
|
|
|
- MEMORY_LIMIT=${SEEKDB_MEMORY_LIMIT:-2G}
|
|
|
|
|
- REPORTER=ragflow-seekdb
|
|
|
|
|
mem_limit: ${MEM_LIMIT}
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ['CMD-SHELL', 'mysql -h127.0.0.1 -P2881 -uroot -p${SEEKDB_PASSWORD:-infini_rag_flow} -e "CREATE DATABASE IF NOT EXISTS ${SEEKDB_DOC_DBNAME:-ragflow_doc};"']
|
|
|
|
|
interval: 5s
|
|
|
|
|
retries: 60
|
|
|
|
|
timeout: 5s
|
|
|
|
|
networks:
|
|
|
|
|
- ragflow
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
2025-05-16 11:14:57 +08:00
|
|
|
sandbox-executor-manager:
|
|
|
|
|
profiles:
|
|
|
|
|
- sandbox
|
2025-07-07 14:50:23 +08:00
|
|
|
image: ${SANDBOX_EXECUTOR_MANAGER_IMAGE-infiniflow/sandbox-executor-manager:latest}
|
2025-05-16 11:14:57 +08:00
|
|
|
privileged: true
|
|
|
|
|
ports:
|
2025-07-07 14:50:23 +08:00
|
|
|
- ${SANDBOX_EXECUTOR_MANAGER_PORT-9385}:9385
|
2025-05-16 11:14:57 +08:00
|
|
|
env_file: .env
|
|
|
|
|
volumes:
|
|
|
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
|
|
|
networks:
|
|
|
|
|
- ragflow
|
|
|
|
|
security_opt:
|
|
|
|
|
- no-new-privileges:true
|
|
|
|
|
environment:
|
|
|
|
|
- SANDBOX_EXECUTOR_MANAGER_POOL_SIZE=${SANDBOX_EXECUTOR_MANAGER_POOL_SIZE:-3}
|
|
|
|
|
- SANDBOX_BASE_PYTHON_IMAGE=${SANDBOX_BASE_PYTHON_IMAGE:-infiniflow/sandbox-base-python:latest}
|
|
|
|
|
- SANDBOX_BASE_NODEJS_IMAGE=${SANDBOX_BASE_NODEJS_IMAGE:-infiniflow/sandbox-base-nodejs:latest}
|
|
|
|
|
- SANDBOX_ENABLE_SECCOMP=${SANDBOX_ENABLE_SECCOMP:-false}
|
2025-05-20 17:21:28 +08:00
|
|
|
- SANDBOX_MAX_MEMORY=${SANDBOX_MAX_MEMORY:-256m}
|
|
|
|
|
- SANDBOX_TIMEOUT=${SANDBOX_TIMEOUT:-10s}
|
2025-05-16 11:14:57 +08:00
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "curl", "http://localhost:9385/healthz"]
|
|
|
|
|
interval: 10s
|
2025-11-07 14:44:34 +08:00
|
|
|
timeout: 10s
|
|
|
|
|
retries: 120
|
2025-12-04 15:18:13 +08:00
|
|
|
restart: unless-stopped
|
2024-04-07 09:04:32 +08:00
|
|
|
|
|
|
|
|
mysql:
|
2024-09-25 10:37:20 +08:00
|
|
|
# mysql:5.7 linux/arm64 image is unavailable.
|
|
|
|
|
image: mysql:8.0.39
|
2024-11-12 14:59:41 +08:00
|
|
|
env_file: .env
|
2024-04-07 09:04:32 +08:00
|
|
|
environment:
|
|
|
|
|
- MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}
|
|
|
|
|
command:
|
|
|
|
|
--max_connections=1000
|
|
|
|
|
--character-set-server=utf8mb4
|
2024-12-10 10:42:04 +07:00
|
|
|
--collation-server=utf8mb4_unicode_ci
|
2024-04-07 09:04:32 +08:00
|
|
|
--default-authentication-plugin=mysql_native_password
|
|
|
|
|
--tls_version="TLSv1.2,TLSv1.3"
|
|
|
|
|
--init-file /data/application/init.sql
|
2025-03-28 11:37:53 +08:00
|
|
|
--binlog_expire_logs_seconds=604800
|
2024-04-07 09:04:32 +08:00
|
|
|
ports:
|
2026-01-20 13:42:22 +08:00
|
|
|
- ${EXPOSE_MYSQL_PORT}:3306
|
2024-04-07 09:04:32 +08:00
|
|
|
volumes:
|
|
|
|
|
- mysql_data:/var/lib/mysql
|
|
|
|
|
- ./init.sql:/data/application/init.sql
|
|
|
|
|
networks:
|
|
|
|
|
- ragflow
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "mysqladmin" ,"ping", "-uroot", "-p${MYSQL_PASSWORD}"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 10s
|
2025-11-07 14:44:34 +08:00
|
|
|
retries: 120
|
2025-12-04 15:18:13 +08:00
|
|
|
restart: unless-stopped
|
2024-04-07 09:04:32 +08:00
|
|
|
|
|
|
|
|
minio:
|
2026-04-02 22:03:02 +08:00
|
|
|
image: pgsty/minio:RELEASE.2026-03-25T00-00-00Z
|
2025-11-20 03:14:56 +01:00
|
|
|
command: ["server", "--console-address", ":9001", "/data"]
|
2024-04-07 09:04:32 +08:00
|
|
|
ports:
|
2024-04-18 15:45:09 +08:00
|
|
|
- ${MINIO_PORT}:9000
|
|
|
|
|
- ${MINIO_CONSOLE_PORT}:9001
|
2024-11-12 14:59:41 +08:00
|
|
|
env_file: .env
|
2024-04-07 09:04:32 +08:00
|
|
|
environment:
|
|
|
|
|
- MINIO_ROOT_USER=${MINIO_USER}
|
|
|
|
|
- MINIO_ROOT_PASSWORD=${MINIO_PASSWORD}
|
|
|
|
|
volumes:
|
|
|
|
|
- minio_data:/data
|
|
|
|
|
networks:
|
|
|
|
|
- ragflow
|
2025-12-04 15:18:13 +08:00
|
|
|
restart: unless-stopped
|
2025-07-04 20:03:03 +08:00
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
|
2025-11-07 14:44:34 +08:00
|
|
|
interval: 10s
|
|
|
|
|
timeout: 10s
|
|
|
|
|
retries: 120
|
2024-04-07 09:04:32 +08:00
|
|
|
|
2024-05-07 11:43:33 +08:00
|
|
|
redis:
|
2025-02-08 10:31:50 +08:00
|
|
|
# swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/valkey/valkey:8
|
2024-11-02 20:05:12 +08:00
|
|
|
image: valkey/valkey:8
|
2025-11-20 03:14:56 +01:00
|
|
|
command: ["redis-server", "--requirepass", "${REDIS_PASSWORD}", "--maxmemory", "128mb", "--maxmemory-policy", "allkeys-lru"]
|
2024-11-12 14:59:41 +08:00
|
|
|
env_file: .env
|
2024-06-08 23:24:29 +08:00
|
|
|
ports:
|
|
|
|
|
- ${REDIS_PORT}:6379
|
2024-05-07 11:43:33 +08:00
|
|
|
volumes:
|
|
|
|
|
- redis_data:/data
|
|
|
|
|
networks:
|
|
|
|
|
- ragflow
|
2025-12-04 15:18:13 +08:00
|
|
|
restart: unless-stopped
|
2025-07-04 14:06:20 +08:00
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"]
|
2025-11-07 14:44:34 +08:00
|
|
|
interval: 10s
|
|
|
|
|
timeout: 10s
|
|
|
|
|
retries: 120
|
2024-05-07 11:43:33 +08:00
|
|
|
|
2026-06-12 14:56:44 +08:00
|
|
|
nats:
|
|
|
|
|
profiles:
|
|
|
|
|
- ragflow-go
|
2026-06-16 14:03:53 +08:00
|
|
|
image: nats:2.14.2
|
2026-06-12 14:56:44 +08:00
|
|
|
ports:
|
|
|
|
|
- ${NATS_PORT}:4222
|
|
|
|
|
- "8222:8222"
|
|
|
|
|
volumes:
|
|
|
|
|
- nats_data:/data
|
|
|
|
|
command: -js -sd /data
|
|
|
|
|
env_file: .env
|
|
|
|
|
networks:
|
|
|
|
|
- ragflow
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "nc", "-z", "localhost", "${NATS_PORT}"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 10s
|
|
|
|
|
retries: 120
|
2024-05-07 11:43:33 +08:00
|
|
|
|
2025-10-23 23:02:27 +08:00
|
|
|
tei-cpu:
|
|
|
|
|
profiles:
|
|
|
|
|
- tei-cpu
|
|
|
|
|
image: ${TEI_IMAGE_CPU}
|
|
|
|
|
hostname: tei
|
|
|
|
|
ports:
|
|
|
|
|
- ${TEI_PORT-6380}:80
|
|
|
|
|
env_file: .env
|
|
|
|
|
networks:
|
|
|
|
|
- ragflow
|
2025-10-31 16:46:20 +08:00
|
|
|
command: ["--model-id", "/data/${TEI_MODEL}", "--auto-truncate"]
|
2025-12-04 15:18:13 +08:00
|
|
|
restart: unless-stopped
|
2025-10-23 23:02:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
tei-gpu:
|
|
|
|
|
profiles:
|
|
|
|
|
- tei-gpu
|
|
|
|
|
image: ${TEI_IMAGE_GPU}
|
|
|
|
|
hostname: tei
|
|
|
|
|
ports:
|
|
|
|
|
- ${TEI_PORT-6380}:80
|
|
|
|
|
env_file: .env
|
|
|
|
|
networks:
|
|
|
|
|
- ragflow
|
2025-10-31 16:46:20 +08:00
|
|
|
command: ["--model-id", "/data/${TEI_MODEL}", "--auto-truncate"]
|
2025-10-23 23:02:27 +08:00
|
|
|
deploy:
|
|
|
|
|
resources:
|
|
|
|
|
reservations:
|
|
|
|
|
devices:
|
|
|
|
|
- driver: nvidia
|
|
|
|
|
count: all
|
|
|
|
|
capabilities: [gpu]
|
2025-12-04 15:18:13 +08:00
|
|
|
restart: unless-stopped
|
2025-10-23 23:02:27 +08:00
|
|
|
|
|
|
|
|
|
2025-10-14 09:38:47 +08:00
|
|
|
kibana:
|
|
|
|
|
profiles:
|
|
|
|
|
- kibana
|
|
|
|
|
image: kibana:${STACK_VERSION}
|
|
|
|
|
ports:
|
|
|
|
|
- ${KIBANA_PORT-5601}:5601
|
|
|
|
|
env_file: .env
|
|
|
|
|
volumes:
|
|
|
|
|
- kibana_data:/usr/share/kibana/data
|
|
|
|
|
depends_on:
|
|
|
|
|
es01:
|
|
|
|
|
condition: service_started
|
|
|
|
|
healthcheck:
|
|
|
|
|
test: ["CMD", "curl", "-f", "http://localhost:5601/api/status"]
|
|
|
|
|
interval: 10s
|
|
|
|
|
timeout: 10s
|
|
|
|
|
retries: 120
|
|
|
|
|
networks:
|
|
|
|
|
- ragflow
|
2025-12-04 15:18:13 +08:00
|
|
|
restart: unless-stopped
|
2025-10-14 09:38:47 +08:00
|
|
|
|
2024-04-07 09:04:32 +08:00
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
|
esdata01:
|
|
|
|
|
driver: local
|
2025-04-24 16:03:31 +08:00
|
|
|
osdata01:
|
|
|
|
|
driver: local
|
2024-11-12 14:59:41 +08:00
|
|
|
infinity_data:
|
|
|
|
|
driver: local
|
2025-11-20 10:00:14 +08:00
|
|
|
ob_data:
|
|
|
|
|
driver: local
|
2026-01-19 16:07:43 +08:00
|
|
|
seekdb_data:
|
|
|
|
|
driver: local
|
2024-04-07 09:04:32 +08:00
|
|
|
mysql_data:
|
|
|
|
|
driver: local
|
|
|
|
|
minio_data:
|
|
|
|
|
driver: local
|
2024-05-07 11:43:33 +08:00
|
|
|
redis_data:
|
|
|
|
|
driver: local
|
2025-10-23 23:02:27 +08:00
|
|
|
tei_data:
|
|
|
|
|
driver: local
|
2025-10-14 09:38:47 +08:00
|
|
|
kibana_data:
|
|
|
|
|
driver: local
|
2026-06-12 14:56:44 +08:00
|
|
|
nats_data:
|
|
|
|
|
driver: local
|
2024-04-07 09:04:32 +08:00
|
|
|
|
|
|
|
|
networks:
|
|
|
|
|
ragflow:
|
|
|
|
|
driver: bridge
|