This is what I use for general Linux-based development in Visual Studio Code, leveraging Visual Studio Code Remote - Containers. For some projects I'm experimenting with project-specific containers (see r4list), while for others I'm trying to use a shared/"sandbox" container like this.
Adapted from the huge number of examples found in https://github.com/microsoft/vscode-dev-containers.