services: opensearch01: container_name: ragflow-opensearch-01 image: hub.icert.top/opensearchproject/opensearch:2.19.1 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 - TZ=${TIMEZONE} - 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 restart: on-failure postgres: image: postgres:15 container_name: ragflow-postgres env_file: .env environment: - POSTGRES_DB=${POSTGRES_DBNAME} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - TZ=${TIMEZONE} ports: - ${POSTGRES_PORT-5440}:5432 volumes: - postgres_data:/var/lib/postgresql/data networks: - ragflow healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DBNAME}"] interval: 10s timeout: 5s retries: 5 restart: on-failure minio: image: quay.io/minio/minio:RELEASE.2025-06-13T11-33-47Z container_name: ragflow-minio command: server --console-address ":9001" /data ports: - ${MINIO_PORT}:9000 - ${MINIO_CONSOLE_PORT}:9001 env_file: .env environment: - MINIO_ROOT_USER=${MINIO_USER} - MINIO_ROOT_PASSWORD=${MINIO_PASSWORD} - TZ=${TIMEZONE} volumes: - minio_data:/data networks: - ragflow restart: on-failure healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 redis: # swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/valkey/valkey:8 image: valkey/valkey container_name: ragflow-redis command: redis-server --requirepass ${REDIS_PASSWORD} --maxmemory 128mb --maxmemory-policy allkeys-lru env_file: .env ports: - ${REDIS_PORT}:6379 volumes: - redis_data:/data networks: - ragflow restart: on-failure healthcheck: test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"] interval: 5s timeout: 3s retries: 3 start_period: 10s volumes: esdata01: driver: local osdata01: driver: local infinity_data: driver: local mysql_data: driver: local minio_data: driver: local redis_data: driver: local postgres_data: driver: local networks: ragflow: name: ragflow-20250916_ragflow driver: bridge