I currently use NixOS and nix-darwin, and I’ve enjoyed the ride so far. I use flakes with direnv for reproducible development environments, and this has been working out well. I’ve also been impressed with using Nix to build OCI containers.
The learning curve isn’t flat, but the ecosystem is fantastic.
Dockerfile
s act as instructions for thedocker
(or compatible) CLI to use for building OCI container images. Images may or may not have layers and can be exported as a tarball for inspection (with tools likedive
).Nix provides native support for building container images, and the resulting archive must be loaded using
docker load
. There is another library (nix2container
) that aims for better performance and relies onskopeo
for copying the built image to a docker-compatible server, local or remote.Just wanted to share a some of the information I’ve learned. Cheers!