Installs the Aspire CLI.
"features": {
"ghcr.io/sliekens/devcontainer-features/aspire-cli:1": {
"quality": "release"
}
}Copy the block below into a chat with your coding agent:
Add
ghcr.io/sliekens/devcontainer-features/aspire-cli:1to this project's Dev Container. Follow https://github.com/sliekens/devcontainer-features/blob/main/src/aspire-cli/README.md. Use the collection's sharedinitializeCommandpipeline (devcontainer + jq + xargs overcustomizations.sliekens[].initializeCommand) for host bind pre-create; Unix/WSL2 only. Prefer that over hand-writtenmkdirunless asked.
| Option | Type | Default | Description |
|---|---|---|---|
quality |
string | release |
Quality to download. Allowed: release, staging, dev. |
| Host path | Container path | Purpose |
|---|---|---|
~/.aspire |
/var/lib/aspire-cli |
CLI state and configuration |
This directory is bind-mounted from the host so that CLI state is preserved across container rebuilds.
Docker cannot bind-mount host paths that do not yet exist. Each feature in this collection that needs host paths declares a host init command under customizations.sliekens.initializeCommand. Wire a single initializeCommand in your devcontainer.json to run all of them (works for any number of features):
"initializeCommand": "devcontainer read-configuration --workspace-folder . --include-merged-configuration | jq -r '(.mergedConfiguration.customizations.sliekens // []) | .[] | .initializeCommand' | xargs -I{} bash -c {}"Requires devcontainer and jq on the host PATH.
Note: This host init pipeline runs only on Unix-like systems (Linux, macOS, and source code inside WSL2 on Windows). Native Windows (
cmd.exe) is not supported — the Dev Containers CLI runsinitializeCommandvia/bin/sh -con Unix andcmd.exe /con native Windows.
If you prefer not to automate with the Dev Containers CLI, jq, and xargs, pre-create the host paths yourself in initializeCommand:
"initializeCommand": "mkdir -p \"$HOME/.aspire\""This feature is released under the MIT License.
The installed tool is subject to its own license: Aspire license.
- Declare
customizations.sliekens.initializeCommandfor composable host path pre-create; document automated and manualinitializeCommandwiring.
- It's just Aspire now
- Install aspire binary to
/opt/aspire/binand expose it via a wrapper script so aspire bundle operations work as a nonroot user. - Hand ownership of
/opt/aspireto the container user at container start so bundle locking and extraction work without elevated privileges.
- Add trailing slash to bind mount source path to mark it explicitly as a directory.
- Use bind mount from host
~/.aspireinstead of a Docker volume for persistent state.
- Enabled container tunnel support by default for improved CLI experience in devcontainers (
ASPIRE_ENABLE_CONTAINER_TUNNELset totrue).
- Added recommended VS Code extension
microsoft-aspire.aspire-vscode.
- Initial release.