# devcontainers/features

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/devcontainers-features).**

1,484 stars · 603 forks · Shell · MIT

## Links

- GitHub: https://github.com/devcontainers/features
- Homepage: https://containers.dev/features
- awesome-repositories: https://awesome-repositories.com/repository/devcontainers-features.md

## Topics

`containers` `devcontainers`

## Description

This project provides a framework for defining and distributing reproducible development environments through modular, containerized configuration units. It functions as an infrastructure-as-code tool that automates the setup of standardized workspaces, ensuring that programming languages, command-line utilities, and system dependencies are consistently provisioned across different projects and team members.

The system distinguishes itself by packaging these configuration units as versioned, discoverable artifacts that can be layered onto base container images. By utilizing a standardized specification, it allows developers to bundle custom installation logic and editor settings into reusable collections, facilitating the sharing of environment configurations across organizations.

Beyond core environment setup, the framework supports the orchestration of container lifecycles and the configuration of remote access. It enables the deployment of these environments across diverse infrastructure, including local machines and cloud-based providers, while maintaining consistent tooling and runtime settings through declarative manifests.

## Tags

### Development Tools & Productivity

- [Dev Container Configurations](https://awesome-repositories.com/f/development-tools-productivity/dev-container-configurations.md) — Uses configuration files to define consistent, reproducible development environments inside containers.
- [Development Container Configuration](https://awesome-repositories.com/f/development-tools-productivity/container-development-environments/development-container-configuration.md) — Specifies the structure and properties of development environments using a standardized schema to ensure consistent tooling and settings. ([source](https://containers.dev/implementors/json_reference/))
- [Containerized Development Workflows](https://awesome-repositories.com/f/development-tools-productivity/containerized-development-workflows.md) — Defines methodologies and tools for developing containerized applications within local, isolated environments.
- [Declarative Environment Configurations](https://awesome-repositories.com/f/development-tools-productivity/development-environments/declarative-environment-configurations.md) — Uses a central configuration file to define required tools and settings that are automatically provisioned into the workspace.
- [Containerized Development Environments](https://awesome-repositories.com/f/development-tools-productivity/containerized-development-environments.md) — Bridges local host resources with containerized runtimes for seamless development.
- [Containerized Development Tooling](https://awesome-repositories.com/f/development-tools-productivity/containerized-development-tooling.md) — Adds programming languages, command-line interfaces, and infrastructure utilities to containerized environments to standardize and accelerate the setup of new development workspaces. ([source](https://github.com/devcontainers/features/blob/main/src))
- [Installation Automation Tools](https://awesome-repositories.com/f/development-tools-productivity/installation-automation-tools.md) — Enables non-interactive software installation through configuration and command-line parameters within containerized workspaces.
- [Tool Installers](https://awesome-repositories.com/f/development-tools-productivity/tool-installers.md) — Adds programming languages, command-line interfaces, and system utilities to containerized environments by referencing pre-built configuration units. ([source](https://github.com/devcontainers/features#readme))

### Business & Productivity Software

- [Remote Development Access](https://awesome-repositories.com/f/business-productivity-software/team-collaboration-events/collaboration-communication-tools/collaboration-tools/workspace-collaboration/remote-development-access.md) — Provides mechanisms for enabling secure, real-time remote connectivity to containerized development environments. ([source](https://github.com/devcontainers/features/tree/main/src))

### DevOps & Infrastructure

- [Artifact Distribution](https://awesome-repositories.com/f/devops-infrastructure/artifact-distribution.md) — Packages and distributes modular configuration units as standard container images to ensure versioned and discoverable environment components.
- [Remote Development Provisioning](https://awesome-repositories.com/f/devops-infrastructure/cloud-provisioning/remote-development-provisioning.md) — Hosts development environments on remote infrastructure to allow users to access compute-heavy or ephemeral workspaces from local editors or web browsers. ([source](https://containers.dev/supporting))
- [Configuration Distribution and Sharing](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/configuration-distribution-and-sharing.md) — Packages and shares custom installation logic as reusable units to standardize development toolsets across multiple projects or organizations. ([source](https://github.com/devcontainers/features#readme))
- [Reusable Configuration Blocks](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/configuration-distribution-and-sharing/reusable-configuration-blocks.md) — Packages and hosts modular development environment configurations in a standardized format for discovery and installation across platforms. ([source](https://containers.dev/implementors/features-distribution/))
- [Container Lifecycle Management](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments/container-lifecycle-management.md) — Automates the creation, configuration, and runtime execution of development containers by using standardized specification files and lifecycle scripts. ([source](https://containers.dev/supporting))
- [Reusable Features and Templates](https://awesome-repositories.com/f/devops-infrastructure/dev-container-specifications/reusable-features-and-templates.md) — Packages and shares modular configuration units that install programming languages, tools, and utilities into development environments. ([source](https://containers.dev/implementors/json_reference/))
- [Feature Authoring](https://awesome-repositories.com/f/devops-infrastructure/distribution-packaging/system-package-manager-installations/container-package-installation/composable-feature-packages/feature-authoring.md) — Bundles standardized configuration units for development containers to ensure consistent environment setups across different projects and team members. ([source](https://github.com/devcontainers/features/blob/main/README.md))
- [Infrastructure as Code Frameworks](https://awesome-repositories.com/f/devops-infrastructure/infrastructure-as-code-frameworks.md) — Provides a framework for defining and managing environment resources through version-controlled configuration files.
- [Remote Development Environments](https://awesome-repositories.com/f/devops-infrastructure/remote-development-environments.md) — Provides tools for provisioning, connecting to, and managing cloud-hosted development environments.
- [Development Environment Reproducibility](https://awesome-repositories.com/f/devops-infrastructure/reproducible-environments/development-environment-reproducibility.md) — Uses immutable, versioned configuration units to install specific programming languages and tools for consistent and reproducible results. ([source](https://github.com/devcontainers/features#readme))

### Programming Languages & Runtimes

- [Container Startup Hooks](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtime-management-utilities/run-lifecycle-controls/lifecycle-hook-executions/container-startup-hooks.md) — Executes predefined scripts at specific stages of the container startup process to configure tools and environment settings.

### Software Engineering & Architecture

- [JSON Configuration Schemas](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/configuration-formats-and-schemas/json-configuration-schemas.md) — Uses standardized JSON schema files to define the structure and properties of development environments for consistent cross-platform tooling.
- [Layered Image Composition](https://awesome-repositories.com/f/software-engineering-architecture/modular-package-systems/layered-image-composition.md) — Builds development environments by stacking modular configuration units onto a base container image during the build process.
