{ lib, config, pkgs, ... }: let cfg = config.my.virtualisation.podman; in { options.my.virtualisation.podman = { enable = lib.mkEnableOption "Enable Podman module"; }; config = lib.mkIf cfg.enable { # Enable common container config files in /etc/containers virtualisation.containers.enable = true; virtualisation = { podman = { enable = true; # Create a `docker` alias for podman, to use it as a drop-in replacement dockerCompat = true; # Required for containers under podman-compose to be able to talk to each other. defaultNetwork.settings.dns_enabled = true; }; }; # Useful other development tools environment.systemPackages = with pkgs; [ dive # look into docker image layers podman-tui # status of containers in the terminal docker-compose # start group of containers for dev podman-compose # start group of containers for dev ]; # Depending on the host filesystem # virtualisation.containers.storage.settings = { # storage = { # driver = "zfs"; # graphroot = "/var/lib/containers/storage"; # runroot = "/run/containers/storage"; # }; # }; }; }