devcontainers/spec ↗
Created Mar 18, 2023 · View the devcontainers/spec repository page
Development Containers: Use a container as a full-featured development environment.
Want this for your repo?
Render a free sample of any GitHub repo in seconds.
Contributors
17
Lines of Code
193
From
Jan 11, 2022
To
Mar 10, 2023
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.