DevContainer ComposerGenerate a ready-to-use Quick start
If you don't need the panel, use Generate Dev Container with Default Packages. If a What gets generated
Put your own setup steps in PersistenceTwo Docker volumes are mounted:
Each home path is a symlink into its volume, so you log in once and the login is reused by every project. Corporate networksUnder Package sources you can set:
These settings are written to the Dockerfile as
Re-running on an existing
|
| Setting | Default | Purpose |
|---|---|---|
devcontainerComposer.defaultPackages |
node, typescript, python, azure-cli, azd, copilot |
Pre-selected packages (id or id@version) |
devcontainerComposer.baseImage |
mcr.microsoft.com/devcontainers/base:ubuntu |
FROM image |
devcontainerComposer.remoteUser |
vscode |
Container user |
devcontainerComposer.sources.npmRegistry |
npm registry or proxy | |
devcontainerComposer.sources.pipIndexUrl / pipTrustedHost |
pip index or proxy | |
devcontainerComposer.sources.imageMirror |
Replaces mcr.microsoft.com |
|
devcontainerComposer.sources.featureMirror |
Replaces ghcr.io |
|
devcontainerComposer.sharedVolumeName |
devc-shared-auth |
Volume shared by all projects |
devcontainerComposer.showStatusBar |
true |
Status bar button |
devcontainerComposer.customPackages |
[] |
Extra packages, or replacements for built-in ones |
Save as my default in the panel writes the current selection to these settings.
Custom packages
"devcontainerComposer.customPackages": [
{
"id": "rust",
"label": "Rust",
"category": "Languages",
"feature": "ghcr.io/devcontainers/features/rust:1",
"versions": ["latest", "1.80"],
"extensions": ["rust-lang.rust-analyzer"],
"persist": [{ "id": "cargo-registry", "path": ".cargo/registry", "scope": "shared" }]
},
{
"id": "corp-tools",
"label": "Company tools",
"install": "pip install --user corp-cli==${version}",
"versions": ["2.1.0"],
"requires": ["python"]
}
]
A custom package with the same id as a built-in one replaces the built-in one.
Development
See PROJECT.md in the repository for the design and architecture.
npm install
npm run typecheck
npm test # unit tests (node:test)
npm run build # esbuild bundle to dist/extension.js
npm run package # .vsix
Press F5 to start an Extension Development Host. The end-to-end test needs Docker; see e2e/run-e2e.sh and e2e/run-e2e.ps1.