summary refs log tree commit diff
path: root/nixos/modules/virtualisation/containers.nix
diff options
context:
space:
mode:
authoradisbladis <adisbladis@gmail.com>2020-04-19 14:41:18 +0100
committeradisbladis <adisbladis@gmail.com>2020-04-20 07:33:46 +0100
commitab37d7e7ea6fa44bba109c30dd006037c93cbc52 (patch)
treed9d5e14be74b9454bac94b184df4313cc016fcb8 /nixos/modules/virtualisation/containers.nix
parent53c14c4e65cc5d58525fc9ec310d2e49d16d0283 (diff)
downloadnixpkgs-ab37d7e7ea6fa44bba109c30dd006037c93cbc52.tar
nixpkgs-ab37d7e7ea6fa44bba109c30dd006037c93cbc52.tar.gz
nixpkgs-ab37d7e7ea6fa44bba109c30dd006037c93cbc52.tar.bz2
nixpkgs-ab37d7e7ea6fa44bba109c30dd006037c93cbc52.tar.lz
nixpkgs-ab37d7e7ea6fa44bba109c30dd006037c93cbc52.tar.xz
nixpkgs-ab37d7e7ea6fa44bba109c30dd006037c93cbc52.tar.zst
nixpkgs-ab37d7e7ea6fa44bba109c30dd006037c93cbc52.zip
nixos-containers: Add support for custom nixpkgs argument
Diffstat (limited to 'nixos/modules/virtualisation/containers.nix')
-rw-r--r--nixos/modules/virtualisation/containers.nix18
1 files changed, 16 insertions, 2 deletions
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index dad211ef55b..2db5c117aa7 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -463,10 +463,15 @@ in
                 A specification of the desired configuration of this
                 container, as a NixOS module.
               '';
-              type = lib.mkOptionType {
+              type = let
+                confPkgs = if config.pkgs == null then pkgs else config.pkgs;
+              in lib.mkOptionType {
                 name = "Toplevel NixOS config";
-                merge = loc: defs: (import ../../lib/eval-config.nix {
+                merge = loc: defs: (import (confPkgs.path + "/nixos/lib/eval-config.nix") {
                   inherit system;
+                  pkgs = confPkgs;
+                  baseModules = import (confPkgs.path + "/nixos/modules/module-list.nix");
+                  inherit (confPkgs) lib;
                   modules =
                     let
                       extraConfig = {
@@ -515,6 +520,15 @@ in
               '';
             };
 
+            pkgs = mkOption {
+              type = types.nullOr types.attrs;
+              default = null;
+              example = literalExample "pkgs";
+              description = ''
+                Customise which nixpkgs to use for this container.
+              '';
+            };
+
             ephemeral = mkOption {
               type = types.bool;
               default = false;