{ pkgs, lib, config, ... }: let cfg = config.custom.misc.podman; in { options = { custom.misc.podman = { enable = lib.mkEnableOption "Enable podman service"; }; }; 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 # Broken atm -> https://github.com/NixOS/nixpkgs/issues/470432 #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 ]; }; }