Developing inside containers

distrobox

distrobox1: Use any linux distribution inside your terminal

distrobox

toolbox

toolbox2 is a tool for Linux operating systems, which allows the use of containerized command line environments

This is usedful for OSTree based operating systems like Fedora CoreOS and Silverblue. The intention of these systems is to discourage installation of software on the host, and instead install software as (or in) containers

Toolbox solves these problem by providing a fully mutable container within which one can install their favorite development and debugging tools, editors and SDKs.

devcontainers

development container (dev container) : a dev container allows you to use a container as a full-featured development environment

dev container vs production container

devcontainers spec : An open specification for enriching containers with development specific content and settings.

Tools and services support the Development Container Specification

Editors

  • VS Code & its Dev Containers extension3 VS Code - Dev Container
  • JetBrain’s IDE: IntelliJ, Goland4

Tools

  • Jetpack.io5 devbox6: Instant, easy, and predictable development environments (Nix-based, no container while developing)
  • cachix devenv7: Fast, Declarative, Reproducible, and Composable Developer Environments using Nix

Services

  • GitHub Codespaces

    GitHub Codespaces

  • CodeSandbox8

  • DevPod9: Codespaces but open-source, client-only and un-opinionated: Works with any IDE and lets you use any cloud, kubernetes or just localhost docker.

    DevPod Demo