github.com/devcontainers/spec

Development Containers: Use a container as a full-featured development environment.

Open this visualization on its own page →

Contributors

17

Lines of Code

193

From

2022-01-11

To

2023-03-10

About devcontainers/spec

The Development Container Specification is a standard that enables developers to use containers as complete, reproducible development environments. The specification defines how to configure containerized coding setups through structured metadata, primarily using a devcontainer.json format written in JSON with Comments. This allows teams to codify their development environment requirements—including tools, libraries, runtimes, and configuration—in a way that can be consistently reproduced across different machines and CI/CD systems.

The specification seeks to enrich existing container formats with development-specific settings while keeping the approach simple and flexible. Beyond the core devcontainer.json format, the vision includes embedding this metadata directly into container images through labels like devcontainer.metadata, creating a unified object model that different tools can interpret consistently. This approach addresses both local development workflows and continuous integration scenarios, helping teams avoid environment-specific problems and ensuring that the same setup used locally can be replicated in CI/CD pipelines.

The project provides an open-source CLI reference implementation that works with Docker and Docker Compose, along with GitHub Actions and Azure DevOps integrations available in separate repositories. The specification repository itself contains the formal spec documentation and active proposals, while related concerns like built-in features, templates, and tooling are maintained across a ecosystem of companion repositories. This is a community-driven initiative managed through the devcontainers GitHub organization, with contributions and feedback welcomed through issues and a dedicated community Slack channel.

Share this video