diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-03-17 15:23:20 +0100 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-03-17 15:23:20 +0100 |
commit | ac215779dd1fdfe58d75bcc22cb6a5b0a58744a4 (patch) | |
tree | 5919585be388a02d13e156b3090b4eeeb7558bd5 /nixos/modules/virtualisation/containers.nix | |
parent | ef8e0266a2583eb45444b1faa0512f99d18fca6c (diff) | |
download | nixpkgs-ac215779dd1fdfe58d75bcc22cb6a5b0a58744a4.tar nixpkgs-ac215779dd1fdfe58d75bcc22cb6a5b0a58744a4.tar.gz nixpkgs-ac215779dd1fdfe58d75bcc22cb6a5b0a58744a4.tar.bz2 nixpkgs-ac215779dd1fdfe58d75bcc22cb6a5b0a58744a4.tar.lz nixpkgs-ac215779dd1fdfe58d75bcc22cb6a5b0a58744a4.tar.xz nixpkgs-ac215779dd1fdfe58d75bcc22cb6a5b0a58744a4.tar.zst nixpkgs-ac215779dd1fdfe58d75bcc22cb6a5b0a58744a4.zip |
Give containers a writable /nix/var/nix/{profiles,gcroots}
These are stored on the host in /nix/var/nix/{profiles,gcroots}/per-container/<container-name> to ensure that container profiles/roots are not garbage-collected.
Diffstat (limited to 'nixos/modules/virtualisation/containers.nix')
-rw-r--r-- | nixos/modules/virtualisation/containers.nix | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix index 034ebe84b42..6a4833e1e21 100644 --- a/nixos/modules/virtualisation/containers.nix +++ b/nixos/modules/virtualisation/containers.nix @@ -110,10 +110,19 @@ with pkgs.lib; if ! [ -e ${container.root}/etc/os-release ]; then touch ${container.root}/etc/os-release fi + + mkdir -p -m 0755 \ + /nix/var/nix/profiles/per-container/${name} \ + /nix/var/nix/gcroots/per-container/${name} ''; serviceConfig.ExecStart = - "${config.systemd.package}/bin/systemd-nspawn -M ${name} -D ${container.root} --bind-ro=/nix ${container.path}/init"; + "${config.systemd.package}/bin/systemd-nspawn" + + " -M ${name} -D ${container.root}" + + " --bind-ro=/nix/store --bind-ro=/nix/var/nix/db --bind-ro=/nix/var/nix/daemon-socket" + + " --bind=/nix/var/nix/profiles/per-container/${name}:/nix/var/nix/profiles" + + " --bind=/nix/var/nix/gcroots/per-container/${name}:/nix/var/nix/gcroots" + + " ${container.path}/init"; preStop = '' |