Issue in setting up Frappe Drive from Docker

I used the official docker setup guide for frappe drive, but got installation issue on docker compose.

the main frappe-drive container crashes with logs :

  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/redis/client.py", line 910, in from_url
    connection_pool = ConnectionPool.from_url(url, **kwargs)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/redis/connection.py", line 1345, in from_url
    url_options = parse_url(url)
                  ^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/redis/connection.py", line 1239, in parse_url
    raise ValueError(
ValueError: Redis URL must specify one of the following schemes (redis://, rediss://, unix://)
Site drive.localhost does not exist!
Site drive.localhost does not exist!
Site drive.localhost does not exist!
Site drive.localhost does not exist!
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 114, in <module>
    main()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 20, in main
    click.Group(commands=commands)(prog_name="bench")
  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/click/core.py", line 1442, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/click/core.py", line 1363, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/click/core.py", line 1830, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/click/core.py", line 1827, in invoke
    super().invoke(ctx)
  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/click/core.py", line 1226, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/click/core.py", line 794, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/click/decorators.py", line 34, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 44, in app_group
    ctx.obj = {"sites": get_sites(site), "force": force, "verbose": verbose, "profile": profile}
                        ^^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 56, in get_sites
    elif default_site := frappe.get_conf().default_site:
                         ^^^^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 406, in get_conf
    with init_site(site):
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 416, in __enter__
    init(self.site)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 250, in init
    setup_redis_cache_connection()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 438, in setup_redis_cache_connection
    cache = setup_cache()
            ^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/redis_wrapper.py", line 311, in setup_cache
    return RedisWrapper.from_url(frappe.conf.get("redis_cache"))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/redis/client.py", line 910, in from_url
    connection_pool = ConnectionPool.from_url(url, **kwargs)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/redis/connection.py", line 1345, in from_url
    url_options = parse_url(url)
                  ^^^^^^^^^^^^^^
  File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/redis/connection.py", line 1239, in parse_url
    raise ValueError(
ValueError: Redis URL must specify one of the following schemes (redis://, rediss://, unix://)
18:24:27 system     | web.1 started (pid=642)
18:24:27 system     | socketio.1 started (pid=646)
18:24:27 system     | schedule.1 started (pid=649)
18:24:27 system     | worker.1 started (pid=651)
18:24:28 socketio.1 | Realtime service listening on: ws://0.0.0.0:9000
18:24:28 socketio.1 | node:internal/process/promises:391
18:24:28 socketio.1 |     triggerUncaughtException(err, true /* fromPromise */);
18:24:28 socketio.1 |     ^
18:24:28 socketio.1 | 
18:24:28 socketio.1 | Error: connect ECONNREFUSED 127.0.0.1:6379
18:24:28 socketio.1 |     at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1611:16)
18:24:28 socketio.1 | Emitted 'error' event on RedisClient instance at:
18:24:28 socketio.1 |     at RedisSocket.<anonymous> (/home/frappe/frappe-bench/apps/frappe/node_modules/@redis/client/dist/lib/client/index.js:412:14)
18:24:28 socketio.1 |     at RedisSocket.emit (node:events:524:28)
18:24:28 socketio.1 |     at RedisSocket._RedisSocket_connect (/home/frappe/frappe-bench/apps/frappe/node_modules/@redis/client/dist/lib/client/socket.js:166:18)
18:24:28 socketio.1 |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
18:24:28 socketio.1 |     at async RedisClient.connect (/home/frappe/frappe-bench/apps/frappe/node_modules/@redis/client/dist/lib/client/index.js:185:9)
18:24:28 socketio.1 |     at async /home/frappe/frappe-bench/apps/frappe/realtime/index.js:47:2 {
18:24:28 socketio.1 |   errno: -111,
18:24:28 socketio.1 |   code: 'ECONNREFUSED',
18:24:28 socketio.1 |   syscall: 'connect',
18:24:28 socketio.1 |   address: '127.0.0.1',
18:24:28 socketio.1 |   port: 6379
18:24:28 socketio.1 | }
18:24:28 socketio.1 | 
18:24:28 socketio.1 | Node.js v20.19.2
18:24:28 system     | socketio.1 stopped (rc=1)
18:24:28 system     | sending SIGTERM to web.1 (pid 642)
18:24:28 system     | sending SIGTERM to schedule.1 (pid 649)
18:24:28 system     | sending SIGTERM to worker.1 (pid 651)
18:24:28 system     | worker.1 stopped (rc=-15)
18:24:28 system     | web.1 stopped (rc=-15)
18:24:28 system     | schedule.1 stopped (rc=-15)

Used the docker development setup : GitHub - frappe/drive: 100% open source file storage, sharing, and collaboration

is the redis configuration in the docker-compose complete??

1 Like

your main error is:-
ValueError: Redis URL must specify one of the following schemes (redis://, rediss://, unix://)

bash into your backend container and make sure these are in your common_site_config.json: -

“redis_cache”: “redis://redis-cache:6379”,
“redis_queue”: “redis://redis-queue:6379”,
“redis_socketio”: “redis://redis-queue:6379”,

Did you get this fixed?