if we have `shell.nix` or `default.nix`

-Iオプションを知っていればnix-build用に書かれたxxxxx.nixを使うことができますな。

$ nix build -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/master.tar.gz --impure --file  xxxxxx.nix -o  

-Iから<nixpkgs> が設定される。以下nix shell --helpより:

If a path in the Nix search path starts with http:// or https://, it is interpreted as the URL of a tarball that will be downloaded and unpacked to a temporary location. The tarball must consist of a single top-level directory. For example, passing

-I nixpkgs=https://github.com/NixOS/nixpkgs/archive/master.tar.gz

tells Nix to download and use the current contents of the master branch in the nixpkgs repository.

いっそのこと.zshrcで

export NIX_PATH=https://github.com/NixOS/nixpkgs/archive/master.tar.gz

としておくのがよいかも。

ここでxxxx.nixは以下のような実行ファイル(derivationファイルではない)。

with import <nixpkgs> { };

pkgs.dockerTools.buildLayeredImage {
	name = "nix-hellow";
	tag = "latest";
	contents = [ pkgs.hello ]; 
}

なので場合によっては修正が必要。