This makes ~2.5x speed up of an empty container instantiate, hence reduces rebuild time of system with many declarative containers. Note that this doesn't affect production systems much, becaseu those most likely already include `minimal.nix` profile.
32 lines
842 B
Nix
32 lines
842 B
Nix
{ config, pkgs, lib, ... }:
|
|
|
|
with lib;
|
|
|
|
{
|
|
|
|
config = mkIf config.boot.isContainer {
|
|
|
|
# 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;
|
|
powerManagement.enable = mkDefault false;
|
|
documentation.nixos.enable = mkDefault false;
|
|
|
|
networking.useHostResolvConf = mkDefault true;
|
|
|
|
# Containers should be light-weight, so start sshd on demand.
|
|
services.openssh.startWhenNeeded = mkDefault true;
|
|
|
|
# Shut up warnings about not having a boot loader.
|
|
system.build.installBootLoader = "${pkgs.coreutils}/bin/true";
|
|
|
|
# Not supported in systemd-nspawn containers.
|
|
security.audit.enable = false;
|
|
|
|
# Use the host's nix-daemon.
|
|
environment.variables.NIX_REMOTE = "daemon";
|
|
|
|
};
|
|
|
|
}
|