Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/jpawlowski/devcontainer-features

A fine selection of new and enhanced Features for @devcontainers.
https://github.com/jpawlowski/devcontainer-features

devcontainer devcontainer-feature devcontainer-features

Last synced: 16 days ago
JSON representation

A fine selection of new and enhanced Features for @devcontainers.

Awesome Lists containing this project

README

        

# Julian's Development Container Features

devcontainers organization logo

Julian's Development Container 'Features'

A fine selection of new or enhanced Features.

Welcome to yet another DevContainer Features repository! This repository extends the official [`ghcr.io/devcontainers/features`](https://github.com/orgs/devcontainers/packages?repo_name=features)
main repository and contains a collection of features to enhance your development environment within a [DevContainer](https://containers.dev/).

You may learn about Features at [containers.dev](https://containers.dev/implementors/features/), which is the website for
the dev container specification.

## Features

Below are the features currently available in this repository:

| Feature Name | Description | Documentation |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------- |
| Cascadia Code | Cascadia Code font. | [📚 Link](./src/cascadia-code/) |
| CLI Microsoft 365 | CLI for Microsoft 365 is a cross-platform CLI that allows users on any platform to manage various configuration settings of Microsoft 365. | [📚 Link](./src/cli-microsoft365/) |
| Codespaces Dotfiles | Install dotfiles in GitHub Codespaces using `devcontainers.json`. | [📚 Link](./src/codespaces-dotfiles/) |
| PnP.PowerShell | PnP PowerShell is a cross-platform PowerShell module that allows users on any platform to manage various configuration settings of Microsoft 365. | [📚 Link](./src/pnp.powershell/) |
| PowerShell Extended | Installs PowerShell on AMD64 and ARM64 architectures, with optional resources from the PowerShell Gallery via PSResourceGet. Includes a custom Oh-My-Posh terminal prompt theme and profile files. Supports advanced installation options. | [📚 Link](./src/powershell-extended/) |

'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.

## 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`powershell-extended` feature declared in the [`./src`](./src) directory of this
repository.

See the relevant Feature's README for supported options.

```jsonc
"name": "my-project-devcontainer",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu", // Any generic, debian-based image.
"features": {
"ghcr.io/jpawlowski/devcontainer-features/powershell-extended:2": {
"version": "7.4"
}
}
```

The `:latest` version annotation is added implicitly if omitted. To pin to a specific package version
([example](https://github.com/jpawlowski/devcontainer-features/pkgs/container/features/powershell-extended/versions)), append
it to the end of the Feature. Features follow semantic versioning conventions, so you can pin to a major version `:2`, minor
version `:2.0`, or patch version `:2.0.0` by specifying the appropriate label.

```jsonc
"features": {
"ghcr.io/jpawlowski/devcontainer-features/powershell-extended:2.0.0": {
"version": "7.4"
}
}
```

## Contributing to this repository

This repository will accept improvement and bug fix contributions related to the
[current set of maintained Features](./src).

Learn more about [how to create a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request)
at the GitHub documentation page.