Devcontainer Features Catalog
Features are pre-packaged tools and runtimes that can be added to any devcontainer. They install on top of any base image, making configuration modular and reusable.
Official Features Repository: https://github.com/devcontainers/features
How to Use Features
{
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "20"
},
"ghcr.io/devcontainers/features/git:1": {}
}
}Core Development Tools
Git
Essential for most development workflows.
"ghcr.io/devcontainers/features/git:1": {}Options:
version: Git version (default: "latest")ppa: Use PPA for latest version (default: true)
GitHub CLI
For GitHub operations from the command line.
"ghcr.io/devcontainers/features/github-cli:1": {}Options:
version: CLI version (default: "latest")
Docker-in-Docker
Run Docker commands inside the devcontainer (for container development).
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"version": "latest",
"moby": true
}Options:
version: Docker versionmoby: Use Moby (open source Docker, default: true)dockerDashComposeVersion: Compose version
Note: May not work in all Codespaces configurations. Test thoroughly.
Docker-outside-of-Docker
Use host's Docker daemon (lighter than docker-in-docker).
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}Languages & Runtimes
Node.js
"ghcr.io/devcontainers/features/node:1": {
"version": "20",
"nodeGypDependencies": true
}Options:
version: Node version ("lts", "20", "18", etc.)nodeGypDependencies: Install build tools for native modulesnvmVersion: NVM version to install
Python
"ghcr.io/devcontainers/features/python:1": {
"version": "3.11"
}Options:
version: Python versioninstallTools: Install pip, pipx, etc. (default: true)optimize: Optimize Python installation (default: false)
Go
"ghcr.io/devcontainers/features/go:1": {
"version": "1.21"
}Options:
version: Go version
Rust
"ghcr.io/devcontainers/features/rust:1": {
"version": "latest",
"profile": "default"
}Options:
version: Rust versionprofile: Rustup profile (minimal, default, complete)
Java
"ghcr.io/devcontainers/features/java:1": {
"version": "17",
"installMaven": true,
"installGradle": true
}Options:
version: Java versioninstallMaven: Install MaveninstallGradle: Install GradlejdkDistro: JDK distribution (ms, default)
.NET
"ghcr.io/devcontainers/features/dotnet:2": {
"version": "8.0"
}Options:
version: .NET versionaspnetcore: Install ASP.NET Core runtime
PHP
"ghcr.io/devcontainers/features/php:1": {
"version": "8.2",
"installComposer": true
}Options:
version: PHP versioninstallComposer: Install Composer
Ruby
"ghcr.io/devcontainers/features/ruby:1": {
"version": "3.2"
}Options:
version: Ruby version
Shell & Terminal
Oh My Zsh
"ghcr.io/devcontainers/features/omz:1": {
"plugins": "git docker kubectl"
}Options:
plugins: Space-separated plugin listtheme: Theme name (default: "robbyrussell")
Fish Shell
"ghcr.io/devcontainers/features/fish:1": {}Starship Prompt
"ghcr.io/devcontainers/features/starship:1": {}Cloud & Infrastructure
AWS CLI
"ghcr.io/devcontainers/features/aws-cli:1": {}Azure CLI
"ghcr.io/devcontainers/features/azure-cli:1": {}Google Cloud CLI
"ghcr.io/devcontainers/features/gcloud:1": {}Terraform
"ghcr.io/devcontainers/features/terraform:1": {
"version": "latest",
"tflint": "latest"
}Options:
version: Terraform versiontflint: TFLint versionterragrunt: Terragrunt version
Kubectl & Helm
"ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {
"version": "latest",
"helm": "latest",
"minikube": "latest"
}Databases & Data Tools
PostgreSQL Client
"ghcr.io/devcontainers/features/postgresql-client:1": {}MySQL Client
"ghcr.io/devcontainers/features/mysql-client:1": {}Redis Client (redis-cli)
"ghcr.io/devcontainers/features/redis-cli:1": {}MongoDB Shell
"ghcr.io/devcontainers/features/mongodb-community:1": {}Utilities
jq (JSON processor)
"ghcr.io/devcontainers/features/jq:1": {}yq (YAML processor)
"ghcr.io/devcontainers/features/yq:1": {}HTTPie (HTTP client)
"ghcr.io/devcontainers/features/httpie:1": {}Deno
"ghcr.io/anthropics/devcontainer-features/deno:1": {}Community Features
Beyond official features, many community features exist:
Bun
"ghcr.io/shyim/devcontainers-features/bun:1": {}pnpm
"ghcr.io/devcontainers-contrib/features/pnpm:2": {}Yarn
"ghcr.io/devcontainers/features/yarn:1": {}Biome (linter/formatter)
"ghcr.io/biomejs/devcontainer-features/biome:1": {}Feature Configuration Patterns
Version Pinning
{
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "20.10.0"
}
}
}Multiple Language Versions
{
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "20"
},
"ghcr.io/devcontainers/features/python:1": {
"version": "3.11"
}
}
}Override Install Order
{
"features": {
"ghcr.io/devcontainers/features/node:1": {},
"ghcr.io/devcontainers/features/python:1": {}
},
"overrideFeatureInstallOrder": [
"ghcr.io/devcontainers/features/python",
"ghcr.io/devcontainers/features/node"
]
}Common Feature Combinations
Full Stack JavaScript
{
"features": {
"ghcr.io/devcontainers/features/node:1": { "version": "20" },
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
}
}Python Data Science
{
"features": {
"ghcr.io/devcontainers/features/python:1": { "version": "3.11" },
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {},
"ghcr.io/devcontainers/features/postgresql-client:1": {}
}
}DevOps/Platform Engineering
{
"features": {
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {},
"ghcr.io/devcontainers/features/terraform:1": {},
"ghcr.io/devcontainers/features/aws-cli:1": {}
}
}Go Microservices
{
"features": {
"ghcr.io/devcontainers/features/go:1": { "version": "1.21" },
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/postgresql-client:1": {}
}
}Troubleshooting Features
Feature Not Installing
- Check feature name spelling (case-sensitive)
- Check version exists
- Review devcontainer creation logs
- Try rebuilding without cache
Feature Conflicts
Some features may conflict:
- Multiple versions of same language
- Docker-in-Docker vs Docker-outside-of-Docker
- Different shell configurations
Use overrideFeatureInstallOrder to control order.
Slow Feature Installation
Features install sequentially. For faster startup:
- Move stable tools to Dockerfile
- Use prebuilds for team repositories
- Only include actually needed features
Finding Feature Options
- Check official docs: https://containers.dev/features
- Check feature's GitHub repo README
- Look at
devcontainer-feature.jsonin feature source