one thing that can happen if you have layered something that gets added in the base image in an update, the update will complain and you will just have to remove the layer before trying to update again
also layering will slow down updates since the layers have to be reapplied to the image after the base image is updated, so use layering as a last resort
From what I've seen, you share the host filesystem into the dev container automagically. So make code changes in editor, run tool on same dir in container.
makes working with ruby pretty easy. I mean, I'm fairly competent at managing rbenv, but if I can use the exact same image to develop in that I deploy in? Win-Win.
Distrobox is essentially just podman/docker, but with preconfigured defaults to make it more intuitive and straightforward when you need a single environment with multiple uses / applications.
Inside the container, there's a distrobox-exportdistrobox-export command that will export a script to your .local/bin (for binaries) or a desktop file to your .local/share/applications (for GUI apps).