nix-config-v2/modules/virtualization/podman.nix
2024-12-15 22:37:43 -05:00

41 lines
976 B
Nix

{
config,
lib,
pkgs,
...
}: let
cfg = config.containers;
in {
options.containers = {
podman = {
enable = lib.mkEnableOption "Podman container runtime";
dockerCompat = lib.mkEnableOption "Enable Docker compatibility";
extraPackages = lib.mkOption {
type = lib.types.listOf lib.types.package;
default = [];
description = "Additional packages to install when Podman is enabled";
};
};
};
config = lib.mkIf cfg.enable (lib.attrsets.optionalAttrs (config.nixpkgs.hostPlatform.isLinux) {
virtualisation.podman = {
enable = true;
dockerCompat = cfg.dockerCompat;
enableOnBoot = true;
defaultNetwork.settings.dns_enabled = true;
};
}
// {
environment.systemPackages =
[
pkgs.podman-compose
pkgs.buildah
pkgs.skopeo
pkgs.dive
pkgs.container-diff
]
++ cfg.extraPackages;
});
}