Developing inside containers

7 Dec 2022

As a long-time Fedora user, I have recently stumbled upon Fedora Silverblue: an immutable version of Fedora. By moving as much software to the userspace as possible, we can increase main system’s stability. This means either using Flatpaks or utilizing userspace containers.

Sounds cool, but surely, especially for software development, you need to install system programs, right? For those few Linux-specific applications that e.g. require Kernel access, yes. But the vast majority of software, and all the software that I deal with, runs entirely in the user space.

This means that you can install it within a container. You could do that by manually spinning up docker/podman instances, or, you could use a tool that makes doing it more convenient, such as distrobox.

Working within containers is similar to working on the host system. You can either install programs on the containers themselves and export them using distrobox export, or use programs on the host that support container development, such as vscode. Or, if you are a caveman like me that likes to work from the command line as much as possible, you can just enter the environment via distrobox enter <name of the container>