Hi everyone! I recently contributed a PR to repo2docker to enable support for nixpkgs
and nix
. I think that nix
has a lot to offer the science community.
Demo Repository: https://github.com/costrouc/nix-binder-example
If you are unfamiliar with Nix here are some of the unique things that it has to offer.
- 100% reproducible environments (pin to exact commit in repository)
- both a source and binary package repository
- allows customized compilation and version of every package
- can run identical environment outside of docker (all linux distros + dawin)
- as of now 45,000+ packages
- fully declarative environments
- packages: python, javascript, julia, R, haskell, perl, and many other languages (some better than others).
Look forward to others trying it out! Nix does has a steep learning curve but the reproducibility of development environments across everyones development environment is invaluable. If you decide to take the deep dive in nix we have NixOS
which has a declarative configuration and offers atomic upgrades and rollbacks if anything breaks in an upgrade.