Development Containers

  • Overview
  • Specification
  • Supporting Tools
  • Specification
  • Reference Implementation
  • devcontainer.json schema
  • devcontainer.json reference
  • Features
  • Features distribution
  • Contributing

Topics

Specification

How to contribute to the Development Container Specification

We’re excited for your contributions to the Dev Container Specification! This document outlines how you can get involved.

Contribution approaches

  • Propose the change via an issue in the dev-container-spec repo. Try to get early feedback before spending too much effort formalizing it.
  • More formally document the proposed change in terms of properties and their semantics. Look to format your proposal like our devcontainer.json reference, which is a JSON with Comments (jsonc) format.

Here is a sample proposal:

Property Type Description
image string Required when using an image. The name of an image in a container registry (DockerHub, GitHub Container Registry, Azure Container Registry) that VS Code and other devcontainer.json supporting services / tools should use to create the dev container.
  • PRs to the schema, i.e code or shell scripts demonstrating approaches for implementation.

Once there is discussion on your proposal, please also open and link a PR to update the devcontainer.json reference doc. When your proposal is merged, the docs will be kept up-to-date with the latest spec.

Contributing tool-specific support

Tool-specific properties are contained in namespaces in the "customizations" property. For instance, VS Code specific properties are formated as:

// Configure tool-specific properties.
"customizations": {
     // Configure properties specific to VS Code.
     "vscode": {
          // Set *default* container specific settings.json values on container create.
          "settings": {},
			
          // Additional VS Code specific properties...
     }
},

You may propose adding a new namespace for a specific tool, and any properties specific to that tool.

Review process

We use the following labels in the dev-container-spec repo:

  • proposal: Issues under discussion, still collecting feedback.
  • finalization: Proposals we intend to make part of the spec.

Milestones use a “month year” pattern (i.e. January 2022). If a finalized proposal is added to a milestone, it is intended to be merged during that milestone.

  • Hello from Seattle and Zürich.
  • Star
  • Watch
  • Manage cookies
  • Microsoft © 2022 Microsoft