docker: fix image so that nix profile works

nix profile will otherwise throw this error:

error: path '/nix/var/nix/profiles/default/manifest.nix' is not in the Nix store

That's not entirely true since manifest.nix is within a directory in
the nix store but nix profile seems to require the manifest.nix itself
to be a store path.
This commit is contained in:
John Axel Eriksson 2021-12-16 11:29:05 +01:00
parent 59a5f35802
commit 6942ee8a84

View file

@ -137,11 +137,8 @@ let
name = "root-profile-env"; name = "root-profile-env";
paths = defaultPkgs; paths = defaultPkgs;
}; };
profile = pkgs.buildPackages.runCommand "user-environment" { } '' manifest = pkgs.buildPackages.runCommand "manifest.nix" { } ''
mkdir $out cat > $out <<EOF
cp -a ${rootEnv}/* $out/
cat > $out/manifest.nix <<EOF
[ [
${lib.concatStringsSep "\n" (builtins.map (drv: let ${lib.concatStringsSep "\n" (builtins.map (drv: let
outputs = drv.outputsToInstall or [ "out" ]; outputs = drv.outputsToInstall or [ "out" ];
@ -161,6 +158,11 @@ let
] ]
EOF EOF
''; '';
profile = pkgs.buildPackages.runCommand "user-environment" { } ''
mkdir $out
cp -a ${rootEnv}/* $out/
ln -s ${manifest} $out/manifest.nix
'';
in in
pkgs.runCommand "base-system" pkgs.runCommand "base-system"
{ {