nix-config/system/dev/docker.nix

45 lines
1.1 KiB
Nix

{
lib,
config,
pkgs,
...
}:
with lib; let
cfg = config.mySystem.dev.docker;
in {
options.mySystem.dev.docker = {
enable = mkEnableOption "Enable Docker";
extraDaemonSettings = mkOption {
type = types.nullOr (types.attrsOf types.str);
default = {};
example = {
data-root = "/custom/path";
};
};
podman.enable = mkEnableOption "Enable Podman rather than Docker";
nvidia.enable = mkEnableOption "Activate Nvidia support";
autoprune.enable = mkEnableOption "Enable autoprune";
};
config = {
environment.systemPackages = mkIf cfg.podman.enable [
pkgs.podman-desktop
pkgs.podman-compose
];
virtualisation = mkIf cfg.enable {
docker = mkIf (!cfg.podman.enable) {
enable = true;
enableNvidia = cfg.nvidia.enable;
autoPrune.enable = cfg.autoprune.enable;
};
podman = mkIf cfg.podman.enable {
enable = true;
dockerCompat = cfg.enable;
enableNvidia = cfg.nvidia.enable;
dockerSocket.enable = cfg.enable;
autoPrune.enable = cfg.autoprune.enable;
};
};
};
}