This is the ultimate .NET development container - a massive, comprehensive Ubuntu 24.04-based devcontainer that includes EVERYTHING you could possibly need for modern .NET development, with perfect user ID matching to your host system.
- UID/GID matching with your host system (crucial for WSL file permissions)
- No more permission issues with files created in the container
- Proper sudo access without password prompts
- Latest Ubuntu LTS with all the newest packages
- Built from scratch as a custom Dockerfile (not a pre-built image)
- Full control over every component
- .NET 10.0 SDK (Latest LTS) with ASP.NET Core runtime
- 20+ .NET Global Tools (EF Core, testing, profiling, code analysis)
- Docker & Docker Compose
- Kubernetes (kubectl, helm, tilt)
- Multiple Language Runtimes:
- Node.js 20.x + npm + bun + deno
- Python 3.12 + pip + JupyterLab
- Java 21, 17, 11 JDKs
- Go language
- Rust + Cargo
- Azure CLI with Bicep
- Terraform + Pulumi
- Dapr CLI for microservices
- PowerShell cross-platform
- Zsh with Oh My Zsh + plugins (autosuggestions, syntax highlighting)
- Starship prompt for beautiful shell
- Modern alternatives:
exa,bat,ripgrep,fd,fzf,zoxide - 50+ useful aliases pre-configured
- Build tools: cmake, ninja, gcc, clang, llvm
- Debugging: gdb, valgrind, strace, ltrace
- Network tools: nmap, netcat, wireshark, tcpdump
- Database clients: PostgreSQL, MySQL, Redis, SQLite
- Testing tools: k6 load testing, Playwright
- Code quality: SonarScanner, mutation testing
- Performance: profiling, monitoring, benchmarking tools
- 19 pre-installed extensions including C# Dev Kit, Copilot, Docker
- Optimized settings for .NET development
- Port forwarding for all common development servers
-
Build Layer 1 (devbench-base) if not already built:
cd ../base-image ./build.sh -
Build Layer 2 (dotnet-bench):
./scripts/build-layer.sh
- Open this folder in VS Code
- When prompted, click "Reopen in Container"
- VS Code will automatically open the
/projectsfolder (your ~/projects directory) - π Start coding!
# Start the container
./setup.sh
# Connect to it
docker exec -it dotnet_bench zshThe container automatically mounts and opens your projects folder:
- Host:
~/projects - Container:
/projects - VS Code: Automatically opens
/projectson attach
To work on a specific project by default, update both:
-
.envfile:WORKING_DIR=/projects/YourProjectName
-
.devcontainer/devcontainer.json:"workspaceFolder": "/projects/YourProjectName", "postAttachCommand": "code /projects/YourProjectName"
/projects- Your actual project files (~/projects)/workspace- The workBenches configuration (devBenches/)
dotnet-ef # Entity Framework
dotnet-aspnet-codegenerator # ASP.NET scaffolding
dotnet-stryker # Mutation testing
dotnet-reportgenerator # Code coverage
dotnet-outdated # Dependency updates
GitVersion.Tool # Semantic versioning
Microsoft.Tye # Microservices dev
dotnet-trace # Performance profiling
dotnet-dump # Memory analysis
dotnet-monitor # Diagnostic monitoring
PowerShell # Cross-platform PS
# ... and 15 more!.NET 10.0 SDK # Latest LTS .NET
Node.js 20.x + npm # JavaScript ecosystem
Python 3.12 + pip # Python development
Java 21/17/11 JDKs # Multi-Java support
Go # Go language
Rust + Cargo # Systems programming
Bun # Fast JS runtime
Deno # Modern JS runtimeDocker + Docker Compose # Containerization
Kubernetes (kubectl, helm) # Container orchestration
Azure CLI + Bicep # Azure cloud
Terraform + Pulumi # Infrastructure as Code
Dapr CLI # Microservices runtime
GitHub CLI # GitHub integrationexa # Better ls
bat # Better cat with syntax highlighting
ripgrep # Faster grep
fd # Better find
fzf # Fuzzy finder
zoxide # Smarter cd
starship # Beautiful prompt
k6 # Load testing
hyperfine # Benchmarking
tokei # Code statistics
just # Command runner- .NET Core/Framework development
- Blazor applications (Server, WebAssembly, Hybrid)
- ASP.NET Core APIs and web apps
- MAUI cross-platform apps
- Microservices architecture (with Dapr, Docker, K8s)
- Cloud development (Azure, containers, serverless)
- Full-stack development (React, Angular, Vue with .NET backends)
# .NET shortcuts
dn / dnr / dnb / dnt / dnw # dotnet run/build/test/watch
dnef # dotnet ef
# Docker & Kubernetes
d / dc / k # docker/docker-compose/kubectl
dps / kgp / kgs # docker ps / kubectl get pods/services
# Modern CLI
ll / la / ls # exa variants (better ls)
cat # bat (syntax highlighted)
find / grep # fd / ripgrep (faster)
cd # zoxide (smarter)Auto-forwarded ports: 3000, 4200, 5000, 5001, 7071, 8080
~/workspace/
βββ src/ # Your source code
βββ tests/ # Test projects
βββ docs/ # Documentation
βββ scripts/ # Build scripts
βββ tools/ # Custom tools
βββ docker/ # Docker files
βββ kubernetes/ # K8s manifests
βββ terraform/ # Infrastructure code
- Base: Ubuntu 24.04 LTS
- Size: ~8GB (it's a monster!)
- Build time: 10-15 minutes first time
- Subsequent starts: <30 seconds
- User mapping: Perfect UID/GID match with host
- Docker Desktop with WSL 2 backend
- 8GB+ RAM allocated to Docker
- 20GB+ disk space for the image
- VS Code with Remote-Containers extension
- Perfect Permission Mapping - No more
chownheadaches - Everything Pre-installed - No waiting for tools during development
- Consistent Environment - Same setup across team members
- WSL Optimized - Built specifically for WSL workflows
- Extensible - Easy to add more tools to the Dockerfile
This is the container you use when you want EVERYTHING and don't want to think about setup ever again! π