nixos/nix-optimise: be smarter about when we run the store optimiser
We might be inside a NixOS container on a non-NixOS host, so instead of not running at all inside a container, check if the nix-daemon socket is writable as it will tell us if the store is managed from here or outside. Fixes #63578
This commit is contained in:
parent
20b993ef2c
commit
897834f015
@ -40,8 +40,8 @@ in
|
|||||||
|
|
||||||
systemd.services.nix-optimise =
|
systemd.services.nix-optimise =
|
||||||
{ description = "Nix Store Optimiser";
|
{ description = "Nix Store Optimiser";
|
||||||
# No point running it inside a nixos-container. It should be on the host instead.
|
# No point this if the nix daemon (and thus the nix store) is outside
|
||||||
unitConfig.ConditionVirtualization = "!container";
|
unitConfig.ConditionPathIsReadWrite = "/nix/var/nix/daemon-socket";
|
||||||
serviceConfig.ExecStart = "${config.nix.package}/bin/nix-store --optimise";
|
serviceConfig.ExecStart = "${config.nix.package}/bin/nix-store --optimise";
|
||||||
startAt = optionals cfg.automatic cfg.dates;
|
startAt = optionals cfg.automatic cfg.dates;
|
||||||
};
|
};
|
||||||
|
@ -7,6 +7,7 @@ with lib;
|
|||||||
config = mkIf config.boot.isContainer {
|
config = mkIf config.boot.isContainer {
|
||||||
|
|
||||||
# Disable some features that are not useful in a container.
|
# Disable some features that are not useful in a container.
|
||||||
|
nix.optimise.automatic = mkDefault false; # the store is host managed
|
||||||
services.udisks2.enable = mkDefault false;
|
services.udisks2.enable = mkDefault false;
|
||||||
powerManagement.enable = mkDefault false;
|
powerManagement.enable = mkDefault false;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user