include: - ./docker-compose-base.yml # To ensure that the container processes the locally modified `service_conf.yaml.template` instead of the one included in its image, you need to mount the local `service_conf.yaml.template` to the container. services: ragflow-cpu: depends_on: mysql: condition: service_healthy required: false profiles: - cpu image: ${RAGFLOW_IMAGE} ulimits: nofile: soft: 65535 hard: 65535 nproc: soft: 65535 hard: 65535 # MCP is served in-process by the API server (POST /mcp on the 9380 port). # Example configuration to start Admin server: command: - --enable-adminserver - --init-superuser #- --init-model-provider-tables ports: - ${SVR_WEB_HTTP_PORT}:80 - ${SVR_WEB_HTTPS_PORT}:443 - ${SVR_HTTP_PORT}:9380 - ${ADMIN_SVR_HTTP_PORT}:9381 volumes: - ./ragflow-logs:/ragflow/logs # - ./nginx/ragflow.conf:/etc/nginx/conf.d/ragflow.conf # - ./nginx/proxy.conf:/etc/nginx/proxy.conf # - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./service_conf.yaml.template:/ragflow/conf/service_conf.yaml.template - ./entrypoint.sh:/ragflow/entrypoint.sh # - ${RAGFLOW_SSH_KNOWN_HOSTS:-${HOME}/.ssh/known_hosts}:${SSH_KNOWN_HOSTS:-/etc/ragflow/ssh_known_hosts}:ro env_file: .env # Route the Go services' cache/queue backend to the separate Kvrocks service. # The Python services use the Valkey `redis` service, which the Go deployment # disables (see the `redis` profile override above). KVROCKS_HOST/KVROCKS_PORT # are the IN-NETWORK coordinates the Go process uses to reach `kvrocks:6379`; the # host-published port is KVROCKS_PORT (see docker-compose-base.yml), which CI # offsets per job and keeps distinct from REDIS_PORT. environment: - KVROCKS_HOST=kvrocks - KVROCKS_PORT=6379 networks: - ragflow restart: unless-stopped # https://docs.docker.com/engine/daemon/prometheus/#create-a-prometheus-configuration # If you use Docker Desktop, the --add-host flag is optional. This flag ensures that the host's internal IP is exposed to the Prometheus container. extra_hosts: - "host.docker.internal:host-gateway"