Need assistance with Docker and FUSE

Can you guys try to allow to docker to acess FUSE on your accounts and tell me how to do it?

Hi @Dean_Johansson,

Each user Service runs as docker container in micro VM. You cannot access any device on the host server.
To get /dev/fuse in your container you can do following:

  1. Run some general Linux distro image. I’ve used Ubuntu
  2. Mark it as privileged.
  3. Set some command so it doesn’t exit immediatelly. For me it was sleep 3600. It will be up for an 1h.
  4. When Service is running go to console and install fuse with apt install fuse
  5. Mount fuse control filesystem: mount -t fusectl none /sys/fs/fuse/connections

/dev/fuse is available now.

That being said, I have no idea if this is usefull in any way.

Hello @Lukasz_Oles!
I’ve tried it but it didn’t work. My app uses the rclone along with fuse to mount a virtual filesystem but it doesn’t work. The first time I used the this “docker run” and “–cap-add SYS_ADMIN --device /dev/fuse” it did worked. But then I had to redeploy the instance since that stopped working. Is there any way for you to check the logs to find out what happened? It was in the Sunday morning(Brasilia timezone).

How do you test it?
Can you share your instance id and maybe deployment id when for which it worked?

Unfortunately I deleted the app which had the deployment log. Isn’t there any way to recover it?

I see the deleted app, and the logs. There is not much info there though:

2024-06-16 04:30:59.797	
[2024-06-16T02:30:59.483Z] info    - Not serving HTTPS 
2024-06-16 04:30:59.797	
[2024-06-16T02:30:59.483Z] info      - Using password from ~/.config/code-server/config.yaml
2024-06-16 04:30:59.797	
[2024-06-16T02:30:59.482Z] info    - Authentication is enabled
2024-06-16 04:30:59.797	
[2024-06-16T02:30:59.482Z] info  HTTP server listening on http://0.0.0.0:8080 
2024-06-16 04:30:59.797	
[2024-06-16T02:30:59.482Z] info  Using config file ~/.config/code-server/config.yaml
2024-06-16 04:30:59.797	
[2024-06-16T02:30:59.471Z] info  Using user-data-dir ~/.local/share/code-server
2024-06-16 04:30:59.797	
[2024-06-16T02:30:59.469Z] info  code-server [...]
2024-06-16 04:30:59.045	
[2024-06-16T02:30:58.938Z] info  Wrote default config file to ~/.config/code-server/config.yaml

Hey @Lukasz_Oles! What about the deployment definition in JSON, can you recover it?

Sorry my bad, it seems that all deployments with --device /dev/fuse failed to start. There are some deployments which started, but without /dev/fuse in args.

I can try restore your app and service so you can check by yourself all deployments. Would it be ok for you?

Could delete the current app and restore that one (unacceptable-gabbey)?

Hey again @Lukasz_Oles! I’ve deleted the current app. Could you restore the oldest one? “unacceptable-gabbey” was its name.

I restored your app, service and deployments.
Please note thta this was done manually and not everything may work. I would just use it to check old deployments and later I would recommend creating a new app.
Also we show logs only for the last 72h so you will not be able to see them.

Hey @Lukasz_Oles! Unfortunately it didn’t work. Anyway do you guys have a deadline for implementing docker flags?

Hey @Lukasz_Oles! According to another pm that replied me here on Koyeb Community I cannot use docker flags on the deployment. But they work if I use them in docker compose. So I wanted know if is possible use koyeb cli to pass the docker run flags? According to the documentation I can.

Hi @Dean_Johansson
No, it’s not possible to pass docker run flags via CLI. As for docker compose you check out our example repo GitHub - koyeb/example-docker-compose

It works with Docker Compose but just the console can interact with the fuse, the software in the docker container doesn’t have the access.

Maybe you need to set bind propagation Bind mounts | Docker Docs