Hello! I’m using setup around official nix docker image for development and builds. Here is my example of entry point to development shell. It works fine, but it takes a lot of time to startup. Basically what I do see - a lot of messages like evaluating file $FILENAME.nix
. Here is an example
Configured https://all-hies.cachix.org binary cache in /etc/nix/nix.conf
evaluating file '/nix/store/3ds3cgji9vjxdbgp10av6smyym1126d1-nix-2.3/share/nix/corepkgs/derivation.nix'
evaluating file '/app/nix/nixpkgs.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/default.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/minver.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/top-level/impure.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/top-level/default.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/stdenv/booter.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/default.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/fixed-points.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/lists.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/stdenv/default.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/systems/default.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/attrsets.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/systems/inspect.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/trivial.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/systems/parse.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/strings.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/types.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/options.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/systems/platforms.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/modules.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/debug.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/top-level/config.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/stdenv/linux/default.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/top-level/stage.nix'
evaluating file '/app/nix/overlay.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/stdenv/adapters.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/build-support/trivial-builders.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/top-level/splice.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/top-level/all-packages.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/top-level/aliases.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/pkgs/stdenv/generic/default.nix'
evaluating file '/nix/store/ljscppi60hbm0g2b3y85g9dsq6jkfsya-source/lib/customisation.nix'
And this list is really long. It takes couple of minutes to startup environment. I heard nix is designed the way it’s never do the same job twice, because it’s caching all the outputs in /nix
. But I do see this long log every time when I do startup development container. Do I missing something? How to make it work faster? Maybe I do need to mount any additional volumes where stuff is cached? Any other thoughts? Will appreciate any sort of help or advise.