Scripts to (interactively) demonstrate capabilities of Nix. Mirror of https://gitlab.com/SFrijters/nix-container-demo
{ pkgs }:
# Development shell for interacting with containers
# Based on https://gist.github.com/adisbladis/187204cb772800489ee3dac4acdd9947
let
  # Provides a script that copies/creates files that are required for rootless podman
  podmanSetupScript = import ./podman-setup-script.nix { inherit pkgs; };
in pkgs.mkShell {
  name = "podman";

  packages = with pkgs; [
    podman          # Manage pods, containers and images
    runc            # Container runtime
    conmon          # Container runtime monitor
    skopeo          # Interact with container registry
    slirp4netns     # User-mode networking for unprivileged namespaces
    fuse-overlayfs  # CoW for images, much faster than default vfs
  ];

  shellHook = ''
    # Install configuration required for rootless podman
    ${podmanSetupScript}
  '';
}