Language-Specific Quickstarts
Ready-to-use DevContainer configurations for every major programming language. Copy these production-ready devcontainer.json templates into your projects and start developing in the cloud instantly
How to Use These Quickstarts
Create the .devcontainer directory
In your project root, create a .devcontainer folder.
Copy the configuration
Choose your language below and copy the devcontainer.json file into .devcontainer/devcontainer.json.
Open in your CDE
Use VS Code Remote Containers, GitHub Codespaces, Gitpod, Coder, or any DevContainer-compatible platform. The environment will build automatically.
Customize as needed
Modify the configuration to add project-specific tools, extensions, or environment variables.
Node.js / JavaScript / TypeScript
Production-ready Node.js environment with TypeScript support, ESLint, Prettier, and debugging configured.
Common Issues and Fixes
npm install eslint --save-dev and create .eslintrc.json
version in features to match your project (16, 18, 20, 22)
"postCreateCommand": "npm ci" instead of npm install for faster installs
Python
Python 3.11+ with Poetry, pip, virtual environments, Jupyter, and comprehensive debugging support.
Poetry Support
For Poetry-based projects, add this feature and change the postCreateCommand:
"features": {
"ghcr.io/devcontainers/features/python:1": {
"version": "3.11"
},
"ghcr.io/eitsupi/devcontainer-features/poetry:1": {
"version": "latest"
}
},
"postCreateCommand": "poetry install"
Common Issues and Fixes
source .venv/bin/activate
installJupyterlab to true in features
version in features (3.9, 3.10, 3.11, 3.12)
Java / Kotlin
JDK 17/21 with Maven, Gradle, Spring Boot support, and comprehensive Java tooling.
Common Issues and Fixes
chmod +x mvnw
version to match your project (11, 17, 21)
gabrielbb.vscode-lombok extension is installed and reload window
Go
Go 1.21+ with module support, debugging, linting, and testing configured.
Common Issues and Fixes
go install golang.org/x/tools/gopls@latest
go.mod exists in project root, create with go mod init
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
Rust
Latest Rust toolchain with rust-analyzer, Cargo, clippy, and CodeLLDB debugging.
Common Issues and Fixes
cargo.allFeatures for large projects
Cargo.toml
cargo clean to clear build artifacts
.NET / C#
.NET 8 SDK with C# Dev Kit, NuGet, and comprehensive debugging support.
Common Issues and Fixes
dotnet restore --force
version to match your project (6.0, 7.0, 8.0)
Full-Stack Examples
Multi-container configurations for full-stack development with databases and services
React + Node.js + PostgreSQL
Django + PostgreSQL
Spring Boot + MySQL
Performance Tips
Optimize your DevContainers for faster builds and better developer experience
Layer Caching
Use pre-built base images and avoid reinstalling dependencies on every rebuild
// Use official images
"image": "mcr.microsoft.com/..."
// Cache dependencies
"mounts": [
"source=node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume"
]
Volume Mounts
Use cached volumes for node_modules, .venv, and build artifacts
"mounts": [
"source=${localWorkspaceFolderBasename}-node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume"
]
Prebuild Images
For GitHub Codespaces and Gitpod, use prebuilds to speed up workspace creation
// GitHub Codespaces
{
"prebuildOptions": {
"commands": ["npm ci", "npm run build"]
}
}
Selective Extensions
Only install essential extensions to reduce startup time
// Install only what you need
"extensions": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode"
// Skip theme extensions in CDEs
]
Additional Optimization Strategies
Use npm ci instead of npm install
Faster, deterministic installs from package-lock.json
Configure postAttachCommand
Run lightweight startup tasks after container is ready
Minimize Dockerfile layers
Combine RUN commands to reduce image size and build time
Use multi-stage builds
Separate build and runtime environments for smaller images
Ready to start developing in the cloud?
Copy these configurations, customize for your project, and experience the power of standardized development environments.