Comment on Another reason to love Linux
Boomkop3@reddthat.com 4 days agoPerhaps it’s improved over the last year, I can give it a shot. But yes, for my own packaged applications without shared dependencies, docker is handy. And that’s exclusively what I run
PhilipTheBucket@ponder.cat 4 days ago
I mean if it makes you happy, I won’t tell you to do anything different. I think a certain amount of it is just prejudice against Docker on my part. Just in my experience NixOS is the best of both worlds: You can have a single coherent system if everything in that system can play nice with each other, and if not, then things can be containerized completely that way still works too. And then on top it has a couple of other nice features like rolling back configs easily, or source builds that get slotted in in-place as if they were standard packages (which is generally where I abandon Docker installs of things, because making changes to the source seems like it’s going to be a big hassle).
I’m not trying to evangelize though, you should in all seriousness just do what you find to be effective.
Boomkop3@reddthat.com 4 days ago
Hold up, nix added containerization? How did I miss that? I will have another look now!
Also, you’re right. For small quick scripts docker can be a hassle. Nowadays though I add building a docker image as part of my project’s build/compilation process. The main reason I do this is so that I can work with whatever machine I happen to be on, then just copy paste the app to whatever machine I want it on. No extra config or even a look at the environment required. Just install docker and forget about the rest
PhilipTheBucket@ponder.cat 3 days ago
Nix is containerization.
The whole “system” you get when moving from Nix to NixOS is basically just a composition of a whole bunch of those individual things, in one big container that is “the system.” But you can also fire up temporary containers trivially for particular things. I have a couple of tools with source in
~/src
which, whenever I change the source,nix-os rebuild
will automatically fire up a little container to rebuild them in, and if it works, it’ll deploy the completed product into my main system image for me, but if it doesn’t then nothing will have changed (and either way it throws away the container it used to attempt the build in).Each config change spawns a new container for the main system OS image (“generation”), but you can roll back to one of the earlier generations (which are, from a functional perspective, still around) if you want or if you broke something.
And so on. It’s very nice.
Boomkop3@reddthat.com 3 days ago
Aw, meh. From what I saw it’s more like a jail, there’s no imaging the containers