Okay, all you who post on every post "you should just switch to Linux". Here's your chance. I'm someone who really does want to run Linux on the desktop. I run Linux servers at home, was a Unix sysadmin for years running Linux on the desktop in the '90s. But now I'm in sales and run Windows at work (actually very happily with some help from StartAllBack and Rufus).
I want to replace my Macs at home. Since they removed upgradable RAM and disk, I am no longer willing to pay the high tax for the few little things they do better. But there is some functionality I just cannot seem to find replacements for. This is where you folks who say "I should just switch to Linux" come in. Tell me how please:
Requirement 1) I have heavily invested in my local music library on iTunes. 1200 albums. I have little to no interest in streaming services. I want to organize my music with * ratings from 1-5 and from that have smart playlists that autopopulate and sort themselves by * ratings and genre. I have more than 40 of these types of playlists and it's completely unworkable to populate them manually.
Requirement 2) I must be able to sync my music library in full to my phone. I use an iOS phone now, but I could even be convinced to switch to Android if there was a good solution. I am not willing to go in and select 100 different playlists manually to sync. It must completely replicate what's on my desktop on my phone, 100% locally, including all the afformentioned smart playlists. I travel a lot for work and want my music always available even when there's no network.
Requirement 3) My job really doesn't require much more than Office and a browser, but it requires very heavy use of those things. Firefox is fine for the browser, so no trouble there, but I need full fledged Outlook, OneNote and most of the features of Excel at a minimum. Word I can take a bit of a hit on as long as I can save something that others can open. Ideally I would want to run the Windows version of these tools. I will not be able to live with only the browser versions, that I'm 100% sure of.
Requirement 4) I'd really like some sort of decent photo management tool. I can probably manage just by keeping them organized in folders and having google photos suck that in, but I don't much trust Google, so would like to have a second tool that can also do a good job at replacing MacOS' Photos app. AI image recognition and search a-la Google Photos would be the cherry on top.
Requirement 5) I need to be able to scan in batches from my Fujitsu ScanSnap scanner into Evernote. I use this on mobile, other OS', etc. and have a lot of organization built into it now that I really don't want to try to migrate from.
That's it. 5 high level requirements that must be met. Is it possible?
Well I typically write my own dockerfiles so I have a good understanding of how a lot of software works, I'm sure others do too. It has increased the reproducibility of my stack, my understanding of dependencies and the reliability. Docker is not just
docker compose up
Yeah the containers can be large and usually will lead to large downloads. I have tried bubble wrap and raw chroots but the tooling around docker is a lot better. The change to php8 was a pain, hence why I went docker. An alpine base with clearly defined deps gives me a container that is thin enough but I can move from a Gentoo box to arch for free. This, for my use case, is great.
I put everything in a docker container and it's been, mostly, a net positive. You may laugh at me but it works very well for my use case.
Overall, net positive. I recommend everybody try it and use where appropriate.
This isn't a religion and subscribing to dogma for want of suckless stacks won't always be the best path to the end goal.
However, you're right, docker may not always be the best call and it may promote bloated garbage.
Nix is really useful as well. But it's not always a one-for-one replacement.
One problem I hit with nix is the size, after adding latex and a few other related packages, The install time took a very long time And the amount of space consumed was over 150 GB.
It wasn't too bad because I was able to put it on a compressed ZFS data set but it wasn't great. Whereas distrobox and podman built quicker, had a smaller size and it was easier to move the image between machines.
The other issue I hit with it was having to set environment variables for QT.
Definitely a nice piece of software just a little rough around the edges.
I suppose that's my point. I have tried alternatives and many are good for many things but Docker works for all things.
But Docker is a bit of a sledgehammer approach by packaging a whole operating system.
I wonder how different that file size would be if you had gone with content addressed derivations. Good points.
Yeah I think if I looked deeper into it I could have got it a bit leaner.
But it was simply easier to use distrobox and share the image.
I totally agree that nix is a more elegant solution to the problem though.