Features
A collection of Dev Container Features managed by Dev Container spec maintainers. See https://github.com/devcontainers/feature-starter to publish your own
Install / Use
/learn @devcontainers/FeaturesREADME
Development Container Features
<table style="width: 100%; border-style: none;"><tr> <td style="width: 140px; text-align: center;"><a href="https://github.com/devcontainers"><img width="128px" src="https://raw.githubusercontent.com/microsoft/fluentui-system-icons/78c9587b995299d5bfc007a0077773556ecb0994/assets/Cube/SVG/ic_fluent_cube_32_filled.svg" alt="devcontainers organization logo"/></a></td> <td> <strong>Development Container 'Features'</strong><br /> <i>A set of simple and reusable Features. Quickly add a language/tool/CLI to a development container. </td> </tr></table>'Features' are self-contained units of installation code and development container configuration. Features are designed to install atop a wide-range of base container images.
Missing a CLI or language in your otherwise perfect container image? Add the relevant Feature to the features
property of a devcontainer.json. A
tool supporting the dev container specification is required to build a development
container.
You may learn about Features at containers.dev, which is the website for the dev container specification.
Usage
To reference a Feature from this repository, add the desired Features to a devcontainer.json. Each Feature has a README.md that shows how to reference the Feature and which options are available for that Feature.
The example below installs the go and docker-in-docker declared in the ./src directory of this
repository.
See the relevant Feature's README for supported options.
"name": "my-project-devcontainer",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu", // Any generic, debian-based image.
"features": {
"ghcr.io/devcontainers/features/go:1": {
"version": "1.18"
},
"ghcr.io/devcontainers/features/docker-in-docker:1": {
"version": "latest",
"moby": true
}
}
The :latest version annotation is added implicitly if omitted. To pin to a specific package version
(example), append it to the end of the
Feature. Features follow semantic versioning conventions, so you can pin to a major version :1, minor version :1.0, or patch version :1.0.0 by specifying the appropriate label.
"features": {
"ghcr.io/devcontainers/features/go:1.0.0": {
"version": "1.18"
}
}
The devcontainer CLI reference implementation (or a supporting tool) can be used to build a project's dev container declaring Features.
git clone <my-project-with-devcontainer>
devcontainer build --workspace-folder <path-to-my-project-with-devcontainer>
Repo Structure
.
├── README.md
├── src
│ ├── dotnet
│ │ ├── devcontainer-feature.json
│ │ └── install.sh
│ ├── go
│ │ ├── devcontainer-feature.json
│ │ └── install.sh
| ├── ...
│ │ ├── devcontainer-feature.json
│ │ └── install.sh
├── test
│ ├── dotnet
│ │ └── test.sh
│ ├── go
| | ├── scenarios.json
| | ├── test_scenario_1.json
│ | └── test.sh
| ├── ...
│ │ └── test.sh
...
src- A collection of subfolders, each declaring a Feature. Each subfolder contains at least adevcontainer-feature.jsonand aninstall.shscript.test- Mirroringsrc, a folder-per-feature with at least atest.shscript. ThedevcontainerCLI will execute these tests in CI.
Contributions
Creating your own collection of Features
The Feature distribution specification outlines a pattern for community members and organizations to self-author Features in repositories they control.
A template repo devcontainers/feature-template and GitHub Action are available to help bootstrap self-authored Features.
We are eager to hear your feedback on self-authoring! Please provide comments and feedback on spec issue #70.
Contributing to this repository
This repository will accept improvement and bug fix contributions related to the current set of maintained Features.
🤝 You can read more about how to contribute in CONTRIBUTING.md. ❤️
Related Skills
pestel-analysis
Analyze political, economic, social, technological, environmental, and legal forces
orbit-planning
O.R.B.I.T. - strategic project planning before you build. Objective, Requirements, Blueprint, Implementation Roadmap, Track.
next
A beautifully designed, floating Pomodoro timer that respects your workspace.
product-manager-skills
31PM skill for Claude Code, Codex, Cursor, and Windsurf: diagnose SaaS metrics, critique PRDs, plan roadmaps, run discovery, and coach PM career transitions.
