jlesage / docker-baseimage-gui

A minimal docker baseimage to ease creation of X graphical application containers
MIT License
1.2k stars 179 forks source link

Request / Call for help: Brasero #85

Open MCOfficer opened 1 year ago

MCOfficer commented 1 year ago

Firstly, thank you for your work on these GUI containers. I appreciate how many things you've already set up, and how easy it is (in theory) to create a new image for \<insert random GUI application>.

Since I want to use my NAS drive for reading and writing, I set out to create such an image for Brasero, one of the more notorious burn applications on linux. I've made it past the gstreamer compilation, Brasero's asinine plugin version detection, but here's one final obstacle I cannot pass: Drives.

Brasero is rather similar to Handbrake, in that it seems to use gio to access drives. But unlike your handbrake container, the gio in my container just cannot find any disks:

❯ docker run --device /dev/sr0 --device /dev/sg0 --device /dev/sg1 -it jlesage/handbrake gio mount --list
Volume(0): cdrom
  Type: GUnixVolume
Volume(1): usb
  Type: GUnixVolume

❯ docker run --device /dev/sr0 --device /dev/sg0 --device /dev/sg1 -it my-brasero-container gio mount --list
# no output

The one difference I can see is that your container still uses the S6 overlay, so your init scripts look very different. But then I noticed that my test case, docker run, doesn't even execute the init scripts. So your container is just built different, and I cannot figure out why!

Also, there's a side-issue of sorts: Apparently the handbrake image (and mine, if it started working) only work with docker run, not docker compose: https://github.com/jlesage/docker-handbrake/issues/236

So, that's where I stand right now. Do you have any pointers, or would you be willing to take over the brasero image entirely?

jlesage commented 1 year ago

I did a try on my side also and came with the same result as you: the drives are not detected.

MCOfficer commented 1 year ago

I had another idea while reading this, which turned out to be correct: it's the alpine version.

❯ docker run --device /dev/sr0 --device /dev/sg0 --device /dev/sg1 -it brasero-web-docker:alpine315 gio mount --list
Volume(0): cdrom
  Type: GUnixVolume
Volume(1): usb
  Type: GUnixVolume

❯ docker run --device /dev/sr0 --device /dev/sg0 --device /dev/sg1 -it brasero-web-docker:alpine316 gio mount --list

I'm not sure yet which package changed (probably glib) since I can't convince alpine to install something from edge when it's already in the current version's repos. But at least that's one mystery less, one that you would have come across sooner or later too.