Comment on Another reason to love Linux

<- View Parent
PhilipTheBucket@ponder.cat ⁨3⁩ ⁨days⁩ ago

The issue is, nix builds are only guaranteed to be reproducible if the dependencies don’t change.

Dude, this is exactly why Nix is better. Docker builds are only guaranteed to be reproducible if the dependencies don’t change. Which they will. The vast majority of real-world Dockerfiles do pip install, wget, all kinds of basically unlimited nonsense to pull down their dependencies from anywhere on the internet.

Nix builds, on the other hand, are forbidden from the internet, specifically to force them to declare dependencies explicitly and have it within a managed system. You can trust that the Nix repositories aren’t going to change (or store them yourself, along with all the source that generated them and will actually produce the same binaries), if you’re paranoid. You can send the nix.flake and nix.lock files and it will actually work to reproduce a basically byte-identical container on the receiver’s end, which means you don’t have to send multi-gigabyte “images” in order to be able to depend on the recipient actually being able to make use of it. This is what I was saying that the whole thing of needing “images” is a non-issue if your workflow isn’t allowing arbitrary fuckery on an industrial scale.

I like one a package to be independent

Yes, me too, which is why an affinity for Docker is weird to me.

source
Sort:hotnewtop