Nixery provides the ability to pull ad-hoc container images from a Docker-compatible registry server. The image names specify the contents the image should contain, which are then retrieved and built by the Nix package manager.
Nix is also responsible for the creation of the container images themselves. To do this it uses an interesting layering strategy described in this blog post.
Simply point your local Docker installation (or other compatible registry client) at Nixery
and ask for an image with the contents you desire. Image contents are path separated in the
name, so for example if you needed an image that contains a shell and emacs
you
could pull it as such:
nixery.appspot.com/shell/emacs25-nox
Image tags are currently ignored. Every package name needs to correspond to a key in the nixpkgs package set.
There are some special meta-packages which you must specify as the first package in an image. These are:
shell
: Provides default packages you would expect in an interactive environmentbuilder
: Provides the above as well as Nix's standard build environment
Hence if you needed an interactive image with, for example, htop
installed you
could run docker run -ti nixery.appspot.com/shell/htop bash
.
Technically speaking none of these are frequently-asked questions (because no questions have been asked so far), but I'm going to take a guess at a few anyways:
nixpkgs
is used?
HEAD
at the time I deployed this. One idea I've had is
to let users specify tags on images that correspond to commits in nixpkgs, however there is
some potential for abuse there (e.g. by triggering lots of builds on commits that have
broken Hydra builds) and I don't want to deal with that yet.