Matthew Croughan - Use flake.nix, not Dockerfile - MCH2022
I agree that dockerfile's are not very reproducible. But honestly, that's not how most people use it. I believe most people just pull the already built image which is very reproducible. Anyways, I found this video interesting and thought I'd share it and get your guys thoughts.
flake? The experimental feature that hasn't been stabilised for multiple years, isn't officially part of the main package repository (nixpkgs), requires external tutorials and documentation because it doesn't have an official tutorial and the most official documentation on it is in a man page about nix flakes, and has split the community in flakes vs no flakes, is better than a well documented (from the beginning mind you) file which is used throughout most of the industry?
I’ll disagree with the above. I’ve been using flakes for over a year now for my projects and they are fantastic for both personal use and for distributing along with a public repository.
I’ve been able to dump both Docker and asdf-vm for flake files with direnv, and am very happy with the workflow.
Agree. The issue with reproducibility comes up mostly once you are building your own containers, many of them, and run them in production but then it can hit very hard because it becomes too expensive then to work around all of the following: Once you are hit by a problem (sometimes years after building the original one), it's hard to debug bc you can't be certain to be able to reproduce what you have. It's even difficult to just find out what is in an existing Docker container, companies are running costly scans for that. And finally you can't compose (you can mostly layer) as well one Docker container with another. Using Nix with flakes gets rid of all of that and you can still have Docker or other containers as output.