Giter VIP home page Giter VIP logo

code-spec's Introduction

Development Containers

This repository is for the Development Container Specification. You can check out the spec on our website https://containers.dev/ too.

A development container allows you to use a container as a full-featured development environment. It can be used to run an application, to separate tools, libraries, or runtimes needed for working with a codebase, and to aid in continuous integration and testing.

The Development Container Specification seeks to find ways to enrich existing formats with common development specific settings, tools, and configuration while still providing a simplified, un-orchestrated single container option – so that they can be used as coding environments or for continuous integration and testing.

Stages of container-based development, from development to deployment

The first format in the specification, devcontainer.json, was born out of necessity. It is a structured JSON with Comments (jsonc) metadata format that tools can use to store any needed configuration required to develop inside of local or cloud-based containerized coding.

We envision that this same structured data can be embedded in images and other formats – all while retaining a common object model for consistent processing. For example, some of this same metadata can be added to a devcontainer.metadata image label to tie settings directly to a container image.

Beyond repeatable setup, these same development containers provide consistency to avoid environment specific problems across developers and centralized build and test automation services. You can use the open-source CLI reference implementation either directly or integrated into product experiences to use the structured metadata to deliver these benefits. It currently supports integrating with Docker Compose and a simplified, un-orchestrated single container option – so that they can be used as coding environments or for continuous integration and testing.

A GitHub Action and an Azure DevOps Task are available in devcontainers/ci for running a repository's dev container in continuous integration (CI) builds. This allows you to reuse the same setup that you are using for local development to also build and test your code in CI.

Spec content

You may review the specification in the docs/specs folder of this repo.

You may also review active proposals in the proposals folder.

Images used in this repo will be contained in the images folder. The icon for the dev container GitHub org is from the Fluent icon library.

Contributing and Feedback

If you are interested in contributing, please check out the How to Contribute document, open an issue, or join our community Slack channel.

Please report issues in the following repositories:

License

License for this repository:

Copyright © Microsoft Corporation All rights reserved.
Creative Commons Attribution 4.0 License (International): https://creativecommons.org/licenses/by/4.0/legalcode

code-spec's People

Contributors

samruddhikhandale avatar bamurtaugh avatar edgonmsft avatar joshspicer avatar eljog avatar chrmarti avatar chuxel avatar aeschli avatar joshaber avatar microsoftopensource avatar bdmac avatar marvingravert avatar ronakj avatar roemer avatar alexander-smolyakov avatar alexdima avatar alfredodeza avatar cirolosapio avatar harrypeach avatar jamiemagee avatar jgbright avatar layzeedk avatar shaver avatar nifr avatar bumbummen99 avatar pete-a avatar r0wi avatar ryush00 avatar trukhinyuri avatar l0rem1psum avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.