langgenius / dify

Dify is an open-source LLM app development platform. Dify's intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, observability features and more, letting you quickly go from prototype to production.
https://dify.ai
Other
45.42k stars 6.39k forks source link

Forgot to expose Milvus standalone port in yaml #7653

Closed winsonwhe closed 1 week ago

winsonwhe commented 2 weeks ago

Self Checks

Dify version

0.7.1

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

Follow the steps of Deploy with Docker Compose to setup Dify and Milvus, in docker compose yaml and Milvus part, it is lack of expose Milvus require port, leading to fail to connect with Milvus.

✔️ Expected Behavior

Correct yaml should refer https://github.com/milvus-io/milvus/blob/master/deployments/docker/standalone/docker-compose.yml

  milvus-standalone:
    container_name: milvus-standalone
    image: milvusdb/milvus:v2.3.1
    profiles:
      - milvus
    command: [ "milvus", "run", "standalone" ]
    environment:
      ETCD_ENDPOINTS: ${ETCD_ENDPOINTS:-etcd:2379}
      MINIO_ADDRESS: ${MINIO_ADDRESS:-minio:9000}
      common.security.authorizationEnabled: ${MILVUS_AUTHORIZATION_ENABLED:-true}
    volumes:
      - ./volumes/milvus/milvus:/var/lib/milvus
    healthcheck:
      test: [ "CMD", "curl", "-f", "http://localhost:9091/healthz" ]
      interval: 30s
      start_period: 90s
      timeout: 20s
      retries: 3
    **ports:
      - "19530:19530"
      - "9091:9091"**
    depends_on:
      - "etcd"
      - "minio"
    networks:
      - milvus

❌ Actual Behavior

No response

dosubot[bot] commented 2 weeks ago

Hello @winsonwhe! I'm here to assist you with any bugs or questions you have regarding Dify. I can help you solve issues, answer questions, and even guide you on how to become a contributor. Let me know how I can assist you!

To expose the required Milvus standalone ports in the Docker Compose YAML for your self-hosted Dify setup, you need to add the ports section under the milvus-standalone service. Here is the corrected configuration:

milvus-standalone:
  container_name: milvus-standalone
  image: milvusdb/milvus:v2.3.1
  profiles:
    - milvus
  command: [ "milvus", "run", "standalone" ]
  environment:
    ETCD_ENDPOINTS: ${ETCD_ENDPOINTS:-etcd:2379}
    MINIO_ADDRESS: ${MINIO_ADDRESS:-minio:9000}
    common.security.authorizationEnabled: ${MILVUS_AUTHORIZATION_ENABLED:-true}
  volumes:
    - ./volumes/milvus/milvus:/var/lib/milvus
  healthcheck:
    test: [ "CMD", "curl", "-f", "http://localhost:9091/healthz" ]
    interval: 30s
    start_period: 90s
    timeout: 20s
    retries: 3
  ports:
    - "19530:19530"  # Milvus gRPC port
    - "9091:9091"    # Milvus HTTP port
  depends_on:
    - "etcd"
    - "minio"
  networks:
    - milvus

This configuration ensures that the Milvus gRPC port (19530) and the Milvus HTTP port (9091) are exposed to the host machine, allowing proper connectivity [1][2][3].

To continue talking to Dosu, mention @dosu.

crazywoola commented 2 weeks ago

Please feel free to open a pr for this