diff options
Diffstat (limited to 'nixpkgs/nixos/modules/virtualisation/containers.nix')
-rw-r--r-- | nixpkgs/nixos/modules/virtualisation/containers.nix | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/nixpkgs/nixos/modules/virtualisation/containers.nix b/nixpkgs/nixos/modules/virtualisation/containers.nix index 02de5801da25..2db5c117aa7f 100644 --- a/nixpkgs/nixos/modules/virtualisation/containers.nix +++ b/nixpkgs/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; @@ -609,9 +623,11 @@ in bindMounts = mkOption { type = with types; loaOf (submodule bindMountOpts); default = {}; - example = { "/home" = { hostPath = "/home/alice"; - isReadOnly = false; }; - }; + example = literalExample '' + { "/home" = { hostPath = "/home/alice"; + isReadOnly = false; }; + } + ''; description = '' |