I’ve recently started to get into containerized development (of LaTeX documents for now) using VSCode with the Dev Containers Extension. While compilation and everything works fine, I’m a bit annoyed by the very barebones shell of my podman container in the integrated terminal. I’m used to zsh with syntax highlighting and autocompletion, I like to use neovim to write my commit messages (even when I’m using VSCode to write my code) and of course I need git and ssh to push to my git forge.
I wonder if it is recommended to
- install neovim, zsh, ssh, git inside the dev container using the package manager (apt in this case) and manually write some config files
- Specify the installation of those packages in the Containerfile for my dev container and configure the devcontainer.json to mount my host’s config files
- Use those tools from outside my dev container somehow
- Just not use any convenience tools like zsh, neovim, with individual config even, and only install purely functional packages like git and ssh in the container?
Since I’m not a software developer by training (trying to become one right now) I’d be very happy about some best practices or recommendations.


I know about distrobox, but it’s also just standard podman containers, right? So the question is what container to use, what to install in the container and what part of that to commit in the .devcontainer directory in git.
For example for LaTeX development I’m using this container image https://islandoftex.gitlab.io/community/projects/docker/. I think starting the container via distrobox instead of podman doesn’t change anything about my question?
I just use a straight up general Linux image, such as debian or arch and then install what I need inside them.