Files
k8scd/nix-infra-machine/modules/podman.nix
2026-03-15 18:31:53 +01:00

44 lines
1.3 KiB
Nix

{ config, pkgs, lib, ... }:
let
cfg = config.infrastructure.podman;
in
{
options.infrastructure.podman = {
enable = lib.mkEnableOption "infrastructure.podman";
dockerRegistryHostPort = lib.mkOption {
type = lib.types.str;
description = "Docker Registry IP address";
default = "127.0.0.1:5000";
};
};
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;
};
};
# Add insecure registry
virtualisation.containers.registries.insecure = [ "${cfg.dockerRegistryHostPort}" ];
# virtualisation.containers.registries."10.10.93.0:5000".insecure = true;
# Useful otherdevelopment 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
];
};
}