Comment by amarshall
2 years ago
> NixOS uses "reproducible" to mean "with the same Nix code, you get the same program behaviour".
Note that ”Nix code” also includes the hashes of all non-Nix sources. One way to think of it is that Nix has reliable build cache invalidation.
> This is more/less what people hope Dockerfiles provide.
Indeed, but importantly they do not provide input-reproducibility (while Nix does) because, at least, there are no hashes for remote data.
PSA: you can build OCI images with nix, then they'll be a pure function of their input like we've all wished was the case with Dockerfiles.
(And Nix derivations compose, whereas Dockerfiles entirely do not.)