Skip to content

s-garg/dev-container-templates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 

Repository files navigation

Dev Container Templates

Templates for consistent dev environments using Dev Containers (VS Code or GitHub Codespaces). Each branch targets a specific stack with sensible defaults—ideal for reproducible development.


Why Dev Containers?

In production, Docker makes builds and environments predictable, portable, and repeatable. Dev Containers bring the same reliability to development.

A Dev Container is a Docker container preconfigured with the required tools, runtimes, and shell settings. When used with VS Code, it ensures the correct dependencies, versions, and tooling are always in place — avoiding conflicts between projects and removing the need for manual setup. One project may need Python 3.12, another Python 3.9 — Dev Containers keep these environments isolated so they never interfere with one another.

This approach delivers consistent environments across platforms and team members, isolates development from the host system for clean and reproducible workspaces, and makes onboarding effortless: simply clone the repo and reopen it in a container.

To show their versatility, this repo includes:

  • Languages: Go, Python, Java, Jupyter Notebook
  • Orchestration: Docker Compose for dependencies
  • Extras: Claude Code, zsh shell with plugins

Dev Containers replace manual environment setup with a single, reproducible configuration.


Branches / Templates

Language Environments

Branch Description Build Status
go Go development environment — gopls, golangci-lint, cache, sample server — README Build
java Java development environment with Spring Boot — README Build
python Python 3 dev environment with uv, FastAPI, tasks, debug preset — README Build
notebook Jupyter Notebook / Data Science environment — Jupyter, common DS libs — README Build

Orchestration

Branch Description Build Status
docker-compose Python (FastAPI) app with PostgreSQL and Redis via Docker Compose — README Build

Extras

Branch Description Build Status
claude Dev container with Claude for VS Code preinstalled — README Build
zsh zsh with oh-my-zsh and useful plugins — README Build

claude and zsh templates can be combined with any of the language environments above for an enhanced development experience.


Structure

Each branch provides a complete .devcontainer/ setup and Dockerfile, tailored for its specific environment.

Common features across branches:

  • Lightweight Debian base image
  • Non-root vscode user (safer default for dev containers)
  • Preconfigured VS Code settings via devcontainer.json

Example layout:


.
├── .devcontainer/
│   ├── devcontainer.json   # VS Code devcontainer configuration
│   └── Dockerfile          # Environment definition
├── README.md               # Branch-specific documentation
└── LICENSE                 # MIT License


Quick Start

git clone https://github.com/s-garg/dev-container-templates.git
cd dev-container-templates
git checkout <branch>   # e.g., python, go, docker-compose, etc.
code .                  # open repo in VS Code
# then run "Dev Containers: Reopen in Container"

💡 Tip: If you have the Dev Containers CLI installed:

devcontainer open

License

This project is licensed under the MIT License — see the LICENSE file for full details.

About

Templates for dev containers

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published