devcontainer-features

Additional Features for VSCode Devcontainers and GitHub Codespaces

MIT License

Stars
2

Dev Container Features

Contents

This repository contains following features:

Usage

To use the features from this repository, add the desired features to devcontainer.json.

This example use ansible-lint feature on devcontainer.

{
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
  "features": {
    "ghcr.io/hspaans/devcontainer-features/ansible-lint:1": {}
  }
}

Repo and Feature Structure

Similar to the devcontainers/features repo, this repository has a src folder. Each Feature has its own sub-folder, containing at least a devcontainer-feature.json and an entrypoint script install.sh.

├── src
│   ├── ansible-lint
│   │   ├── devcontainer-feature.json
│   │   └── install.sh
│   ├── pyadr
│   │   ├── devcontainer-feature.json
│   │   └── install.sh
|   └── ...
│       ├── devcontainer-feature.json
│       └── install.sh
|   ...
├── test
│   ├── ansible-lint
│   │   ├── scenarios.json
│   │   └── test.sh
│   ├── pyadr
│   │   ├── scenarios.json
│   │   └── test.sh
|   └── ...
│       ├── scenarios.json
│       └── test.sh
...

An implementing tool will composite the documented dev container properties from the feature's devcontainer-feature.json file, and execute in the install.sh entrypoint script in the container during build time. Implementing tools are also free to process attributes under the customizations property as desired.