SciPhi-AI / R2R

The all-in-one solution for RAG. Build, scale, and deploy state of the art Retrieval-Augmented Generation applications
https://r2r-docs.sciphi.ai/
MIT License
3.54k stars 265 forks source link

'r2r serve --docker' error: no matching manifest for linux/amd64 in the manifest list entries #1020

Closed RemixaWorld closed 2 months ago

RemixaWorld commented 2 months ago

Describe the bug This is my first time building an r2r application, but when I go to 'r2r serve --docker' I get this error:

$ r2r serve --docker Starting Docker Compose setup... [+] Running 32/5 ⠋ neo4j 6 layers [⣿⠀⠀⠀⠀⠀] 0B/0B Pulling 51.0s ⠋ r2r 15 layers [⣿⣿⣿⣿⣿⣿⣿⠀⣿⣿⣿⣿⣿⣿⠀] 163.3MB/3.526GB Pulling 51.0s ✔ postgres 16 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 36.9s ⠋ r2r-dashboard Pulling 51.0s ⠋ traefik 4 layers [⣿⠀⠀⠀] 0B/0B Pulling 51.0s no matching manifest for linux/amd64 in the manifest list entries Navigating to dashboard in 3 seconds... Navigating to dashboard in 2 seconds... Navigating to dashboard in 1 seconds... Opening browser to http://localhost:8001

To Reproduce Steps to reproduce the behavior:

  1. Create a new r2r environment using poetry.
  2. Run 'r2r serve --docker'.
  3. See error.

Expected behavior A clear and concise description of what you expected to happen.

Screenshots QQ图片20240901150226

Additional context

DrewWalkup commented 2 months ago

They recently released v3 and it's causing a bunch of breaking issues, both for older versions of the repo (which are apparently no longer supported) as well as docker versions.

Extremely disappointing to force an upgrade like this, will be keeping everything local for future builds to ensure I'm not relying on their remote repos.

RemixaWorld commented 2 months ago

@DrewWalkup That's a pity! I had just found out about this great project and was about to try it out when I ran into a problem. Hope the problem is solved soon!

DrewWalkup commented 2 months ago

@Remixa-python agreed. And yes, it is a great project. For now, you could try these two hacks:

  1. Remove the r2r-dashboard dl from the docker compose file (py/compose.yaml):

    r2r-dashboard:
    image: emrgntcmplxty/r2r-dashboard:latest
    environment:
      - NEXT_PUBLIC_API_URL=http://traefik:${TRAEFIK_PORT:-80}/api
    depends_on:
      - r2r
    networks:
      - r2r-network
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.dashboard.rule=PathPrefix(`/`)"
      - "traefik.http.services.dashboard.loadbalancer.server.port=3000"
  2. Build the r2r-dashboard for docker on your own:

    • git clone https://github.com/SciPhi-AI/R2R-Application.git
    • cd R2R-Application
    • docker build -t r2r-dash:private .
    • change py/compose.yaml in the main r2r codebase:
      r2r-dashboard:
      image: r2r-dash:private
      environment:
      - NEXT_PUBLIC_API_URL=http://traefik:${TRAEFIK_PORT:-80}/api
      depends_on:
      - r2r
      networks:
      - r2r-network
      labels:
      - "traefik.enable=true"
      - "traefik.http.routers.dashboard.rule=PathPrefix(`/`)"
      - "traefik.http.services.dashboard.loadbalancer.server.port=3000"

Notes:

  1. For option 1, you wouldn't have the r2r dashboard. I've tested this past the linux/amd64 error, but haven't fully deployed.
  2. For option 2, I haven't tested this yet, might be buggy still, but conceptually it should work with some troubleshooting.
NolanTrem commented 2 months ago

Hey @DrewWalkup thanks for the suggestion here. Have you found the issue to be that it's the R2R dashboard docker image that is causing this issue? I'm trying to work through what exactly the cause of this error is, and haven't quite pinned it down yet since I'm not able to reproduce this locally. If this is the case, it would be great to know.

And sorry to hear that the V3 update was a poor experience for you. We tried to make it very clear in our Discord and in our docs that this was a breaking change and that we'd help with migrations if needed. We probably should have made this clear in the repository as well, it sounds like? In either case, your feedback is super helpful here, and I appreciate it!

NolanTrem commented 2 months ago

@Remixa-python @DrewWalkup I believe that this should be fixed now—thanks for your patience and help in getting this issue solved! If it doesn't solve it for you, please let me know!

RemixaWorld commented 2 months ago

@DrewWalkup Thanks for your detailed guidance! Nolan also mentioned fixing the issue, I'll try later!

RemixaWorld commented 2 months ago

@NolanTrem Thanks for your contributions, I will try it later.

RemixaWorld commented 2 months ago

@NolanTrem The dashboard page still gets a "Login failed" error when clicking on the default account to log in. Here is some essential information:

I tried a few things:

  1. Delete the previous related image and retrieve it again.
  2. Refetch and install r2r.
RemixaWorld commented 2 months ago

@NolanTrem Ah-ha, I'm sorry, I am connecting to the remote server through the Local computer and forgot to perform Local Port Forwarding of "R2R Deployment URL"! Now it works, happy!

So to sum up the experience, it should be:

  1. Clear the previous docker build cache;
  2. If r2r is built in a remote server, and you want to connect through the local host, be sure to port 8001 (web) and port 8000 (backend) forwarding!
NolanTrem commented 2 months ago

Awesome, glad that you've got it up and running! Going to close this, but let us know if you run into anything else!

DrewWalkup commented 2 months ago

@NolanTrem Thanks for jumping on this one and glad I could help. It indeed was the dashboard pull from docker hub that was only built for ARM when I responded.

I'm still having issues v3 getting up and running. However, now that the dashboard build is fixed, I'm running (successfully) on commit 210e11249c2695993be4ddf8433b30f42894d02c.

Any chance y'all can keep a /v1 version of the api documentation live until the v3 bugs are worked out?