Skip Navigation

Replacing docker/podman with Nixos?

I setup a next.js project with pkgs.mkshell, and used nix develop to automatically build the project. However, when I leave the shell, the files persist. How should/can(?) I setup my shell.nix so that files in the directory it drops down into are automatically removed when leaving the ephemeral shell?

3
3 comments
  • WDYM by "directory it drops down into"? nix develop stays in your current working directory.

    If I wanted to clean up state, I'd create a clean task in the build system or build a clean script that I'd wire up to the flake outputs such that you could run nix run .#clean.

    • I see, thanks

      As for "drop down", I was loosely referring to the newly spawned terminal

      clean scripts get the job done. I was thinking of persisting changes to the filesystem state only while the ephemeral shell was live, that way every time I ran nix develop i would check to make sure my project could automatically build, and If there was any state that needed persisting, I would have to commit/push and label those changes somewhere before ending my session

      • You could achieve something like that using bubblewrap; effectively a container. You can tell it to mount tmpfs wherever you like. That has other issues though.

        That's a big of a complex setup which other people potentially working with you may not want to have. A clean task is just better. If you're using git anyways, you can also just use git clean.