vscode/devcontainers

Verified Publisher

By Microsoft

Updated about 2 years ago

Development container images for use with VS Code Remote - Containers and GitHub Codespaces.

9

microsoft/vscode-devcontainers repository overview

Repos and Tags

These images are intended for use with VS Code Remote - Containers and GitHub Codespaces. Their contents, and corresponding devcontainer.json files are typically tied to releases at https://github.com/microsoft/vscode-dev-containers

ARM64 support

Due to an issue with Debian 10 / Buster and Ubuntu 20.04 / Focal that results in segmentation faults in libssl in a variety of scenarios, we only build arm64 architecture images that use one of the following operating systems:

  • Debian 11 / Bullseye
  • Debian 9 / Stretch
  • Ubuntu 21.04 / Hirsute
  • Ubuntu 18.04 / Bionic

We also do not build for images like dotnet if the related extension (in this case C#) does not support ARM64.

To use an ARM64 image, use the bullseye, stretch, hirsute, or bionic tag variations above that exist for images that support it. (e.g. mcr.microsoft.com/vscode/devcontainers/typescript-node:16-bullseye)

Release tags

You can decide how often you want image updates by referencing a semantic version of each image. For example, for version 0.200.0 of the javascript-node image, you can reference any of the following:

  • mcr.microsoft.com/vscode/devcontainers/javascript-node:0-16-bullseye
  • mcr.microsoft.com/vscode/devcontainers/javascript-node:0.203-16-bullseye
  • mcr.microsoft.com/vscode/devcontainers/javascript-node:0.203.0-16-bullseye

In general, we recommend using the major release version of this tag to avoid breaking changes while still taking fixes and content additions as they land. E.g. 0-16-bullseye. See the appropriate "History" or "All tags" link under repos and tags get a full list of available versions for the image.

See the history for each image to see available version specific tags and their contents.

How to use the images

VS Code Remote - Containers & GitHub Codespaces

The VS Code Remote - Containers extension and GitHub Codespaces support these development container images through the use of a devcontainer.json configuration file or by simply directly attaching to a running container. To get started:

  1. Either create a codespace for your repository or set up your local machine for use with the Remote - Containers extension, start VS Code, and open your project folder.
  2. Press F1, and select the Add Development Container Configuration Files... command for Remote-Containers or Codespaces.
  3. Pick one of the recommended definitions from the list or select Show All Definitions... to see all of them. You may need to choose the From a predefined container configuration definition... option if your project has an existing Dockerfile or Docker Compose file. Answer any questions that appear.
  4. See the definition's README for configuration options. A link is available in the .devcontainer/devcontainer.json file added to your folder.
  5. Run Remote-Containers: Reopen in Container to use it locally, or Codespaces: Rebuild Container from within a codespace.

See the Remote - Containers and GitHub Codespaces documentation for more information.

Stand alone

You are also free to use these images on their own as you see fit. For example:

docker run -it --init --rm mcr.microsoft.com/vscode/devcontainers/base:0-buster

Some imges like the universal image may require the --privileged flag.

docker run -it --init --privileged --rm mcr.microsoft.com/vscode/devcontainers/universal:1-linux

You can always attach to the running container or create a devcontainer.json file to have VS Code manage the environment for you at a later date.

About Visual Studio Code

Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages (such as C++, C#, Java, Python, PHP, Go) and runtimes (such as .NET and Unity).

Visual Studio Code

Visual Studio Code is built up from the Code - OSS project. You are invited to contribute new features, fixes, or updates, large or small. We love pull requests, and do our best to process them as fast as we can. We also love contributions to the vscode-dev-containers repository for images under this repository..

Learn more about VS Code at: https://code.visualstudio.com

About VS Code Remote - Containers

The Remote - Containers extension lets you use a Docker container as a full-featured development environment. The extension starts a development container running a well defined tool and runtime stack. Workspace files can be mounted into the container from the local file system, or copied or cloned into it once the container is running. A simple devcontainer.json file tells VS Code how to manage the container or you can just attach to one that is already running.

Learn more at: https://aka.ms/vscode-remote/download/containers

About GitHub Codespaces

GitHub Codespaces provide cloud-powered development environments for any activity - whether it's a long-term project, or a short-term task like reviewing a pull request. A "Codespace" is where all of the compute associated with software development happens: compiling, debugging, restoring, etc. When you need to work on a new project, pick up a new task, or review a PR, you can simply spin up a cloud-hosted environment, and GitHub Codespaces takes care of configuring it correctly. Codespaces are fully customizable on a per project basis. This is accomplished by including a devcontainer.json file in the project's repository, similar to VS Code Remote - Containers.

Learn more at: https://github.com/features/codespaces

Documentation

Support and Feedback

License

Legal Notice: Container License Information and NOTICES.txt

See the following links for product license information:

Related open source projects:

Tag Summary

No tags have been pushed to this repository yet.