Files
nix/hosts/common/configs/user/console/docker/default.nix
2025-05-30 00:13:21 +01:00

53 lines
1.2 KiB
Nix

{
user ? throw "user argument is required",
home ? throw "home argument is required",
rootless ? true,
}:
{
config,
lib,
pkgs,
...
}:
lib.mkMerge [
{
virtualisation.docker.rootless = {
enable = rootless;
setSocketVariable = true;
enableOnBoot = false;
storageDriver = "btrfs";
daemon.settings = {
experimental = true;
ipv6 = true;
fixed-cidr-v6 = "fd00::/80";
};
autoPrune = {
enable = true;
flags = [ "--all" ];
};
};
home-manager.users.${user} = {
home = {
packages = with pkgs; [ docker-compose ];
sessionVariables.DOCKER_CONFIG = "${home}/.config/docker";
};
};
}
(lib.mkIf rootless {
environment.persistence."/persist/state"."${home}/.local/share/docker".create = "directory";
systemd.user = {
services.docker.after = [
config.environment.persistence."/persist/state"."${home}/.local/share/docker".mount
];
sockets.docker.after = [
config.environment.persistence."/persist/state"."${home}/.local/share/docker".mount
];
};
})
(lib.mkIf (!rootless) { users.users.${user}.extraGroups = [ "docker" ]; })
]