VSCodium CDE Compose
"Comfortable like sitting at home, but your home is actually modular and HOOKED to a helicopter" anon.
This project is an Abstracted Development Environment that utilizes containerization technology as abstraction layer, thus called for short a CDE, that integrates seamlessly with VSCodium IDE using one of the industry de-facto-standard compose specification compliant software like Docker or Podman to reduce to a minimum time spent on setting up projects on developers machine, and letting possible cross-platform development with minimal amount of dependencies required to be installed on host.
Put simply: projects using this CDE let you develop seamlessly on multiple platforms like Windows, Mac, Linux and reduce all setup process to a constant minimum required amount of work that ususally trickles down to running a single command.
There should be little to no maintainance and entry costs: it's as easy as adding a subtree with git subtree add
and performing sometimes git subtree pull
to upstream your CDE or using a GitHub Template containing a template project with already seamlessly working software stack with sane choices and defaults (for now only Python).
Afterall, the main advantageous characteristic is that this CDE can be adapted to your own software stack, even choosing programming language and drop-in your custom setup and configuration scripts to shape perfectly your workflow of choice.
The following software configurations are available for this CDE:
Host Operaring System | Execution Previleges | Containerization Platform |
---|---|---|
Linux Mac Windows |
rootless rootful |
Podman Docker |
Base Image | Features & Configuration Options |
---|---|
Debian & Debian-based |
|
Refer to documentation to see what's available
- Internet connection to clone repo and build container image
- Linux / Mac / Windows (WSL2)
VSCodium
withOpen Remote - SSH
extensionOpenSSH
client (builtin in Windows WSL2, Mac)bash
(builtin in Windows WSL2, Mac, almost any Linux distribution)podman
andpodman-compose
ordocker
Install dependencies listed previously, here are some official installation instructions and relevant information:
- Containerization
- IDE
Remark to Linux users:
It's worth checking your distribution repository with your package manager for required packages ignoring official documentation:
openssh-client
oropenssh
widely available among distribution repositories, just search forssh
and then install the right onepodman-compose
is available in Debian, while not mentioned in documentation
Clone this repository to your project directory or download a version under releases and unarchive it there, then navigate inside the newly created directory:
cd <my-project>
git clone https://github.com/wav3m1nd3d/vscodium-cde-compose.git
cd vscodium-cde-compose
or
cd <my-project>
wget -qO- https://github.com/wav3m1nd3d/vscodium-cde-compose/releases/vscodium-cde-compose_<version>.zip | unzip -
cd vscodium-cde-compose
Configure environment by editing .env
file, read more about it here
Run the following script to bootstrap and build CDE:
./scripts/setup/setup.bash
Start CDE (add -d
option to spin up in background)
podman-compose up cde
Connect to development environment using open-remote-ssh
extension
Stop CDE
podman-compose down cde