Running .NET Aspire inside a Dev Container gives you a reproducible, fully-tooled environment: Docker, .NET 9 SDK, Aspire CLI, and VS Code extensions—all preconfigured. No more “works on my machine.”
This post shows how to bootstrap an Aspire starter app and wire up a Dev Container so anyone can open the project and hit Run.
1) Create the starter app
dotnet new install Aspire.ProjectTemplates --force
dotnet new aspire-starter -n HelloAspire
You’ll get a solution with:
HelloAspire/
├─ HelloAspire.AppHost/ # Aspire orchestrator
├─ HelloAspire.ApiService/ # Minimal API
├─ HelloAspire.Web/ # Web frontend
├─ HelloAspire.ServiceDefaults/ # Shared defaults
└─ HelloAspire.sln
2) Add a Dev Container
Create .devcontainer/devcontainer.json:
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/dotnet
{
"name": ".NET Aspire",
"image": "mcr.microsoft.com/devcontainers/dotnet:9.0-bookworm",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
"ghcr.io/devcontainers/features/powershell:1": {}
},
"hostRequirements": {
"cpus": 8,
"memory": "32gb",
"storage": "64gb"
},
"onCreateCommand": "curl -sSL https://aspire.dev/install.sh | bash",
"postStartCommand": "dotnet dev-certs https --trust",
"customizations": {
"vscode": {
"extensions": [
"ms-dotnettools.csdevkit",
"GitHub.copilot-chat",
"GitHub.copilot"
]
}
}
}
Continue reading “Developing .NET Aspire inside a Dev Container (VS Code)”
