Skip to content

Latest commit

 

History

History
93 lines (71 loc) · 4.07 KB

README.md

File metadata and controls

93 lines (71 loc) · 4.07 KB

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

 

  • TinyGo - 🤏 Installs tinygo from tinygo-org/tinygo
  • SurrealDB
  • Bazel - Bazel feature
  • 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 - Installs llvm on debian based systems
  • Deno - Installs Deno

↗️ See all features at containers.dev/features

Usage

Codespaces Devcontainers

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

// 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. 💻

// 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

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.