An open API service indexing awesome lists of open source software.

https://github.com/devcontainers-community/features

๐Ÿงฐ Community-driven collection of addons for @devcontainers
https://github.com/devcontainers-community/features

collection community devcontainer-feature devcontainers

Last synced: 9 months ago
JSON representation

๐Ÿงฐ Community-driven collection of addons for @devcontainers

Awesome Lists containing this project

README

          

# Community Dev Container Features

๐Ÿงฐ Community-driven collection of addons for [@devcontainers]



โž• Add extra features to your GitHub Codespace \
๐Ÿณ Use JSON, not Dockerfiles! \
๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Community-driven maintainership

[![](https://img.shields.io/static/v1?style=for-the-badge&message=%F0%9F%A7%B0+Add+a+feature&color=CB3837&label=)](https://github.com/devcontainers-community/features/discussions/new?category=ideas) ย 
[![](https://img.shields.io/static/v1?style=for-the-badge&message=%F0%9F%A4%9D+Join+the+org&color=222222&label=)](https://github.com/orgs/devcontainers-community/discussions/new?category=general)

- **[TinyGo](https://github.com/devcontainers-community/features-tinygo#readme)** - ๐Ÿค Installs tinygo from tinygo-org/tinygo
- **[SurrealDB](https://github.com/devcontainers-community/features-surrealdb)**
- **Bazel** - Bazel feature
- **[direnv](http://github.com/devcontainers-community/features-direnv)** - direnv is an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory.
- **[llvm](https://github.com/devcontainers-community/features-llvm)** - Installs llvm on debian based systems
- **Deno** - Installs Deno

[โ†—๏ธ See all features at containers.dev/features](https://containers.dev/features)

## Usage

![Codespaces](https://img.shields.io/static/v1?style=for-the-badge&message=Codespaces&color=181717&logo=GitHub&logoColor=FFFFFF&label=)
![Devcontainers](https://img.shields.io/static/v1?style=for-the-badge&message=Devcontainers&color=2496ED&logo=Docker&logoColor=FFFFFF&label=)

To add any feature to your Dev Container, just add something like this to your
`devcontainer.json` file:

```jsonc
// devcontainer.json
{
"features": {
"ghcr.io/devcontainers-community/features/cmake": {},
"ghcr.io/devcontainers-community/features/llvm": {},
"ghcr.io/devcontainers-community/features/gcc": {}
}
}
```

โ“ Don't know what this โ˜ means? Check out [this VS Code blog post].

Some features may have additional options that you can configure. ๐Ÿ› ๏ธ For
example, the CMake feature lets you pin the version like this. Make sure you
check each feature's documentation for more information on what options are
available and what they do. ๐Ÿ’ป

```jsonc
// devcontainer.json
{
"features": {
"ghcr.io/devcontainers-community/features/cmake": { "version": "3.15.0" },
"ghcr.io/devcontainers-community/features/gcc": { "version": "11.3.0" }
}
}
```

## Development

![Deno](https://img.shields.io/static/v1?style=for-the-badge&message=Deno&color=000000&logo=Deno&logoColor=FFFFFF&label=)

This is just the **collection index** of all the features that we have. The
actual source code for each feature is housed in each feature's own repository.
๐Ÿ  Why do this? Because it makes it much easier to use a release-based workflow.

โ„น This magic index image is only really used by [containers.dev/features] and
other indexing tools. You can use Dev Container Features without an index just
fine.

To add a new feature, you can [open an Issue]. It'll probably result in some
kind of new repository being created (or [transferred] to us if you've already
coded it up) and you being granted unrestricted access to manage it how you see
fit. ๐Ÿค—

If you want to become a Member of this organization, just [open an Issue] and
we'll get you set up. ๐ŸŽ‰ We're very open to new people.

[this vs code blog post]: https://code.visualstudio.com/blogs/2022/09/15/dev-container-features
[@devcontainers]: https://github.com/devcontainers
[open an issue]: https://github.com/devcontainers-community/features/issues/new
[transferred]: https://docs.github.com/en/github/administering-a-repository/transferring-a-repository
[containers.dev/features]: https://containers.dev/features