/features

🐳 Extra add-in features for Devcontainers and GitHub Codespaces

Primary LanguageShellMIT LicenseMIT

Community devcontainer features

Gitter Codespaces Devcontainers Python

🐳 Extra add-in features for devcontainers and GitHub Codespaces

Overview | User docs | Contributing | Developer wiki

💻 Works with devcontainers
☁️ Works with GitHub Codespaces \

📢 We are actively seeking contributions!

Contributing guide😊

A Handcrafeted Feature

  • Add a feature-id named directory to the src folder containing your devcontainer-feature.json and install.sh scripts
  • Add the corresponsing test.sh to the test folder

An Easly Generated Feature

Get the devcontainer-contrib cli

pip install devcontainer-contrib

Add a new devcontainer-definition.json file to the feature_definition dir

While under the root folder of this repo, generate it using the command:

devcontainer-contrib features generate "./feature_definition/your-feature-id/feature-definition.json" "." --output-type=feature_dir

Additional information and docs about the CLI and devcontainer-definition.json file

Usage

📄 View the full list of features

Just add a .devcontainer/devcontainer.json file with a features key. It's very similar to NPM's package.json and dependencies object, just with the addition of an options object.

📚 Make sure to inspect each feature for feature-specific options
⚠️ We only officially support debian-based images

{
  "image": "mcr.microsoft.com/devcontainers/universal:linux",
  "features": {
    "ghcr.io/devcontainers-contrib/features/deno:latest": {},
    "ghcr.io/devcontainers-contrib/features/mkdocs:latest": {},
    "ghcr.io/devcontainers-contrib/features/bikeshed:latest": {}
  }
}

You can find more developer-specific docs on the Wiki! (thank you @jcbhmr!)