🚀 Your Fast-Track Guide to Development Containers 🚀
PowerContainers is a curated collection of production-ready development containers for modern software development. Think of it as your instant development environment in a box! 📦
- 🐳 Multi-stage Dockerfiles - Optimized for speed and size
- 💻 Complete VS Code Integration - Extensions pre-installed
- 🛠️ Pre-configured Tooling - Linters, formatters, debuggers ready
- 📚 Comprehensive Documentation - In English with helpful emojis
- ⚡ Lightning Fast - From zero to coding in minutes
- 🌍 Cross-Platform - Works on Windows, macOS, and Linux
| Icon | Container | Key Features | Path |
|---|---|---|---|
| 🔧 | C++ CMake | GCC/Clang • CMake/Ninja • GDB/LLDB • Google Test | containers/cpp-cmake/ |
| 📱 | Flutter | Flutter SDK • Dart • Desktop/Web • Android SDK | containers/flutter/ |
| 🟣 | .NET | .NET 8 • Aspire • MAUI • Blazor • EF Core | containers/dotnet/ |
| 🐍 | Python | Python 3.12 • FastAPI • Django • pytest • poetry | containers/python/ |
| ⚛️ | React | Node.js 20 • Vite/CRA • TypeScript • ESLint | containers/react/ |
| Angular | Node.js 20 • Angular CLI • TypeScript • Material | containers/angular/ |
|
| ⚡ | Ionic Angular | Ionic CLI • Angular • Cordova/Capacitor • Live Reload | containers/ionic-angular/ |
| ⚡ | Ionic React | Ionic CLI • React • TypeScript • Vite • Capacitor | containers/ionic-react/ |
Path: containers/cpp-cmake/
🛠️ Toolchain:
- ⚙️ Compilers: GCC & Clang
- 🔨 Build System: CMake & Ninja
- 🐛 Debuggers: GDB & LLDB
- 🔍 Analysis: clang-tidy, cppcheck
- ✅ Testing: Google Test
- 📚 Libraries: Boost
Path: containers/flutter/
🛠️ Toolchain:
- 🎯 Flutter SDK (stable channel)
- 🎪 Dart SDK
- 💻 Linux desktop support
- 🌐 Web support
- 📱 Optional Android SDK
- 🔄 State management extensions
Path: containers/dotnet/
🛠️ Toolchain:
- 🎯 .NET 8 SDK
- ☁️ Aspire (cloud-native apps)
- 📱 MAUI (cross-platform UI)
- 🌐 Blazor (WebAssembly & Server)
- 💾 Entity Framework Core
- 🔒 Identity & Authentication
Path: containers/python/
🛠️ Toolchain:
- 🐍 Python 3.12
- ⚡ FastAPI (pre-installed)
- 🌐 Django & Flask support
- 🎨 Code formatters: Black, isort
- 🔍 Linters: flake8, pylint
- ✅ Testing: pytest
- 📦 Package management: poetry, pip
Path: containers/react/
🛠️ Toolchain:
- 🟢 Node.js 20 LTS
- ⚡ Vite (ultra-fast bundler)
- 📦 Create React App support
- 📘 TypeScript support
- ✨ ESLint & Prettier
- 📦 Package managers: npm, yarn, pnpm
Path: containers/angular/
🛠️ Toolchain:
- 🟢 Node.js 20 LTS
- 🔺 Angular CLI (latest)
- 📘 TypeScript support
- ✨ ESLint & Prettier
- 🎨 Angular Material ready
- 🔥 Hot Module Replacement
Path: containers/ionic-angular/
🛠️ Toolchain:
- ⚡ Ionic CLI
🅰️ Angular CLI- 📱 Cordova & Capacitor
- 🔌 Native app support
- 🔄 Live reload server
- 🎨 Ionic components
Path: containers/ionic-react/
🛠️ Toolchain:
- ⚡ Ionic CLI
- ⚛️ React with TypeScript
- 📱 Cordova & Capacitor
- ⚡ Vite bundler
- 🔌 Native app support
- 🎨 Ionic components
Before starting, make sure you have these installed:
| # | Tool | Status | Link |
|---|---|---|---|
| 1️⃣ | Docker Desktop | ☐ | Download |
| 2️⃣ | Visual Studio Code | ☐ | Download |
| 3️⃣ | Dev Containers Extension | ☐ | Install |
💡 Linux users: You can use Docker Engine instead of Docker Desktop
git clone https://github.com/yourusername/PowerContainers.git
cd PowerContainerscd containers/cpp-cmake # Choose any container you needcode .- Press
F1orCtrl+Shift+P(macOS:Cmd+Shift+P) - Type:
Dev Containers: Reopen in Container - Hit
Enter⏎
The container will build automatically (first time takes 2-5 minutes)
Your development environment is fully configured and ready!
# C++ Development
cd containers/cpp-cmake && code .
# Flutter Development
cd containers/flutter && code .
# .NET Development
cd containers/dotnet && code .
# Python Development
cd containers/python && code .
# React Development
cd containers/react && code .
# Angular Development
cd containers/angular && code .
# Ionic Angular Development
cd containers/ionic-angular && code .
# Ionic React Development
cd containers/ionic-react && code .Each container uses a multi-stage Dockerfile for optimal flexibility:
# 🔹 Stage 1: Base - Minimal base image
FROM ubuntu:22.04 AS base
# 🔹 Stage 2: Build Tools - Essential build tools
FROM base AS build-tools
# 🔹 Stage 3: Dev Tools - Development utilities
FROM build-tools AS dev-tools
# 🔹 Stage 4: Libraries - Additional libraries (⭐ CUSTOMIZE HERE!)
FROM dev-tools AS libraries
# 🔹 Stage 5: Development - Final dev environment
FROM libraries AS development
# 🔹 Stage 6: Production - Minimal runtime (optional)
FROM base AS production1️⃣ System Packages:
FROM dev-tools AS libraries
RUN apt-get update && apt-get install -y \
your-library \
another-dependency \
custom-tool \
&& rm -rf /var/lib/apt/lists/*2️⃣ VS Code Extensions:
Edit .devcontainer/devcontainer.json:
{
"customizations": {
"vscode": {
"extensions": [
"your.extension-id",
"another.extension"
]
}
}
}3️⃣ Environment Variables:
ENV MY_VAR=value
ENV PATH="/custom/path:${PATH}"Each container follows this organized structure:
📦 container-name/
├── 📂 .devcontainer/
│ ├── 📄 devcontainer.json # 🔧 VS Code dev container configuration
│ └── 📄 Dockerfile # 🐳 Multi-stage container definition
├── 📂 .vscode/
│ ├── 📄 settings.json # ⚙️ Editor preferences & formatting rules
│ ├── 📄 launch.json # 🐛 Debug configurations
│ └── 📄 extensions.json # 📦 Recommended extensions
├── 📂 src/ # 💻 Your source code goes here
└── 📄 README.md # 📚 Comprehensive documentation
| File | Purpose | Edit Frequency |
|---|---|---|
devcontainer.json |
🔧 Container settings, ports, features | 🟢 Often |
Dockerfile |
🐳 Image definition, tools installation | 🟡 Sometimes |
settings.json |
⚙️ VS Code editor configuration | 🟢 Often |
launch.json |
🐛 Debugging configurations | 🟡 Sometimes |
README.md |
📚 Documentation and guides | 🔴 Rarely |
# 📋 List all running containers
docker ps
# 📋 List all containers (including stopped)
docker ps -a
# 🗑️ Remove a specific container
docker rm <container-id>
# 🗑️ Remove all stopped containers
docker container prune
# 🗑️ Remove all containers (⚠️ use with caution)
docker rm -f $(docker ps -aq)
# 🖼️ List all images
docker images
# 🗑️ Remove unused images
docker image prune
# 🗑️ Remove all images (⚠️ use with caution)
docker rmi -f $(docker images -q)
# 🧹 Clean up everything (⚠️ nuclear option)
docker system prune -a --volumes
# 📊 Check disk usage
docker system df| Command | Shortcut | Description |
|---|---|---|
Dev Containers: Reopen in Container |
F1 → Type command |
🚀 Open folder in container |
Dev Containers: Rebuild Container |
F1 → Type command |
🔄 Rebuild from scratch |
Dev Containers: Rebuild Without Cache |
F1 → Type command |
🔄 Force clean rebuild |
Dev Containers: Show Container Log |
F1 → Type command |
📋 View build logs |
Dev Containers: Reopen Folder Locally |
F1 → Type command |
🔙 Exit container mode |
Dev Containers: Attach to Running Container |
F1 → Type command |
🔗 Connect to existing container |
| 🏷️ Container | 💬 Language | 🔨 Build Tool | 📦 Package Manager | 🌐 Default Ports |
|---|---|---|---|---|
| 🔧 C++ CMake | C++17-20 | CMake/Ninja | apt | - |
| 📱 Flutter | Dart | Flutter CLI | pub | 8080 |
| 🟣 .NET | C# / F# | dotnet CLI | NuGet | 5000, 5001 |
| 🐍 Python | Python 3.12+ | pip | pip/poetry | 8000, 5000 |
| ⚛️ React | TypeScript/JS | Vite/CRA | npm/yarn/pnpm | 3000, 5173 |
| TypeScript | Angular CLI | npm/yarn | 4200 | |
| ⚡ Ionic Angular | TypeScript | Ionic CLI | npm | 8100 |
| ⚡ Ionic React | TypeScript/JS | Ionic CLI | npm/yarn/pnpm | 8100 |
| Container | Perfect For | Difficulty |
|---|---|---|
| 🔧 C++ | Systems programming, performance-critical apps | 🔴🔴🔴 Advanced |
| 📱 Flutter | Cross-platform mobile apps | 🟡🟡 Intermediate |
| 🟣 .NET | Enterprise apps, web APIs, cloud-native | 🟡🟡 Intermediate |
| 🐍 Python | Data science, web APIs, automation | 🟢 Beginner-friendly |
| ⚛️ React | Modern web UIs, SPAs | 🟡 Intermediate |
| Enterprise web apps | 🟡🟡 Intermediate | |
| ⚡ Ionic Angular | Hybrid mobile apps with Angular | 🟡🟡 Intermediate |
| ⚡ Ionic React | Hybrid mobile apps with React | 🟡🟡 Intermediate |
Symptoms: Build fails or hangs indefinitely
Solutions:
-
✅ Check Docker is running
docker ps
-
✅ Review build logs
- Press
F1→Dev Containers: Show Container Log - Look for error messages
- Press
-
✅ Try clean rebuild
- Press
F1→Dev Containers: Rebuild Container - Or:
F1→Dev Containers: Rebuild Without Cache
- Press
-
✅ Check disk space
docker system df
-
✅ Restart Docker Desktop
Symptoms: Error message about port conflicts
Solutions:
-
✅ Find what's using the port (example for port 3000)
# Windows netstat -ano | findstr :3000 # macOS/Linux lsof -i :3000
-
✅ Stop the conflicting service
-
✅ Change port in devcontainer.json
"forwardPorts": [3001] // Instead of 3000
Symptoms: Container takes forever to build
Solutions:
-
✅ Enable BuildKit (faster builds)
# Windows (PowerShell) $env:DOCKER_BUILDKIT=1 # macOS/Linux export DOCKER_BUILDKIT=1
-
✅ Use layer caching (automatically enabled with BuildKit)
-
✅ Close unnecessary applications to free up resources
-
✅ Increase Docker resources
- Docker Desktop → Settings → Resources
- Increase CPU and Memory allocation
-
✅ Clean up Docker
docker system prune -a
Symptoms: Cannot write files, access denied errors
Solutions:
-
✅ Check container user settings
- Look for
remoteUserindevcontainer.json
- Look for
-
✅ Verify volume permissions
# Inside container ls -la /workspace -
✅ Fix ownership (if needed)
sudo chown -R $(whoami) /workspace
Symptoms: Cannot download packages or connect to internet
Solutions:
-
✅ Check Docker network
docker network ls
-
✅ Verify DNS settings
- Docker Desktop → Settings → Docker Engine
- Add DNS servers if needed
-
✅ Try different DNS
{ "dns": ["8.8.8.8", "8.8.4.4"] }
- 📖 Check container-specific README
- 🔍 Search existing GitHub Issues
- 💬 Open a new issue with:
- OS and Docker version
- Container name
- Full error message
- Build logs
| Resource | Description | Link |
|---|---|---|
| 📦 Dev Containers | Official VS Code documentation | Read Docs |
| 🐳 Docker | Complete Docker documentation | Read Docs |
| 🏗️ Dockerfile Best Practices | Official best practices guide | Read Guide |
| 🔧 Dev Container Spec | Container specification details | Read Spec |
- 📺 Video Tutorials: Check container-specific READMEs
- 💡 Blog Posts: Tips and tricks for each framework
- 🎯 Sample Projects: Example implementations
- 💬 Community Forums: Get help from other developers
We welcome contributions! 🎉
- 🍴 Fork the repository
- 🌿 Create a feature branch (
git checkout -b feature/amazing-feature) - ✍️ Make your changes
- ✅ Test thoroughly
- 📝 Commit with clear messages (
git commit -m 'Add amazing feature') - 📤 Push to your branch (
git push origin feature/amazing-feature) - 🔄 Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
- 🐛 Report bugs
- 💡 Suggest new features
- 📝 Improve documentation
- 🔧 Add new containers
- ✨ Enhance existing containers
- 🎨 Improve UI/UX
This project is licensed under the MIT License - see the LICENSE file for details.
- 🐛 Bug Reports: Open an Issue
- 💡 Feature Requests: Start a Discussion
- 💬 Questions: Check existing issues or open a new one
- 📧 Enterprise Support: Contact us for custom solutions