about summary refs log tree commit diff
path: root/nixos/modules/virtualisation
diff options
context:
space:
mode:
authorMaciej Krüger <mkg20001@gmail.com>2023-10-24 02:06:36 +0200
committerGitHub <noreply@github.com>2023-10-24 02:06:36 +0200
commit1ecbbb6e3f22427f61a28d6e2d758966fb5f0287 (patch)
tree5da56cdab0eacac8bc83bdf0b67a068f3c8d05d6 /nixos/modules/virtualisation
parent5fb487096d9357584365216e0485c421f50dcba0 (diff)
parentc2ff509e66a2e4b3e2f1a24a20fa4340f34aba49 (diff)
downloadnixlib-1ecbbb6e3f22427f61a28d6e2d758966fb5f0287.tar
nixlib-1ecbbb6e3f22427f61a28d6e2d758966fb5f0287.tar.gz
nixlib-1ecbbb6e3f22427f61a28d6e2d758966fb5f0287.tar.bz2
nixlib-1ecbbb6e3f22427f61a28d6e2d758966fb5f0287.tar.lz
nixlib-1ecbbb6e3f22427f61a28d6e2d758966fb5f0287.tar.xz
nixlib-1ecbbb6e3f22427f61a28d6e2d758966fb5f0287.tar.zst
nixlib-1ecbbb6e3f22427f61a28d6e2d758966fb5f0287.zip
Merge pull request #260595 from adamcstephens/lxc/squashfs
lxc-container: add squashfs image support and release output
Diffstat (limited to 'nixos/modules/virtualisation')
-rw-r--r--nixos/modules/virtualisation/lxc-container.nix18
1 files changed, 17 insertions, 1 deletions
diff --git a/nixos/modules/virtualisation/lxc-container.nix b/nixos/modules/virtualisation/lxc-container.nix
index 1034c699629d..61d7c4cb73fe 100644
--- a/nixos/modules/virtualisation/lxc-container.nix
+++ b/nixos/modules/virtualisation/lxc-container.nix
@@ -37,7 +37,6 @@ in {
         ${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
       '';
 
-    # TODO: build rootfs as squashfs for faster unpack
     system.build.tarball = pkgs.callPackage ../../lib/make-system-tarball.nix {
       extraArgs = "--owner=0";
 
@@ -64,6 +63,23 @@ in {
       extraCommands = "mkdir -p proc sys dev";
     };
 
+    system.build.squashfs = pkgs.callPackage ../../lib/make-squashfs.nix {
+      fileName = "nixos-lxc-image-${pkgs.stdenv.hostPlatform.system}";
+
+      noStrip = true; # keep directory structure
+      comp = "zstd -Xcompression-level 6";
+
+      storeContents = [config.system.build.toplevel];
+
+      pseudoFiles = [
+        "/sbin d 0755 0 0"
+        "/sbin/init s 0555 0 0 ${config.system.build.toplevel}/init"
+        "/dev d 0755 0 0"
+        "/proc d 0555 0 0"
+        "/sys d 0555 0 0"
+      ];
+    };
+
     system.build.installBootLoader = pkgs.writeScript "install-lxd-sbin-init.sh" ''
       #!${pkgs.runtimeShell}
       ${pkgs.coreutils}/bin/ln -fs "$1/init" /sbin/init