Visual Studio Code
code.visualstudio.com › blogs › 2022 › 09 › 15 › dev-container-features
Custom Dev Container Features
September 15, 2022 - You can also explore official and publicly contributed Features on the specification site. Any Feature can be added by editing devcontainer.json, and publicly published ones can be added through existing dev container configuration experiences (such as available in the VS Code Dev Containers extension).
GitHub
github.com › devcontainers › features
GitHub - devcontainers/features: A collection of Dev Container Features managed by Dev Container spec maintainers. See https://github.com/devcontainers/feature-starter to publish your own · GitHub
A collection of Dev Container Features managed by Dev Container spec maintainers. See https://github.com/devcontainers/feature-starter to publish your own - devcontainers/features
Starred by 1.4K users
Forked by 590 users
Languages Shell
visual studio code - How can I specify a devcontainer feature more than once? - Stack Overflow
I'm building a custom devcontainers file and need to add a couple of homebrew packages. In the features list, there's a homebrew-package that does the job. The only problem is, this only accepts one More on stackoverflow.com
Questions about devcontainers and Dockerfile
For your devcontainers your Dockerfile shouldn't typically execute anything. If you need running processes in your environment (example: a database), then you should consider using devcontainer with a docker-compose file. Otherwise, your goal is simply to build/install your dev environment dependencies. You also likely won't have to copy anything in your Dockerfile as your current directory will automatically be mounted by your devcontainer. In your case, I believe all you need is to install scala and spark (although I'm not familiar spark so not sure if more is required. You can either install them normally via the Dockerfile, or use devcontainer features (my prefferred method!). With devcontainer features, your Dockerfile could actually be empty aside from one single line: FROM whatever:whatever More on reddit.com
Creating a dev 'container' to make it easier on first timers
Heyo! I've been using devcontainers and remote-containers for VS code since early beta, it is amazing and worth it. Here are a few tips: The Dockerfile for your devcontainer isn't your production Dockerfile if you have / need one. They could be similar, but they serve very different purposes. If you expect developers to be building and using docker images, consider having your devcontainer use docker-in-docker so people can attach to your devcontainer and run docker commands or docker-compose commands from there. The Dockerfile for your devcontainer specifies the static portions of the environment, the devcontainer.json is used for the more dynamic or VSCode specific parts like environment variables, post-creation actions (I use this to install do a pip install of my project dev-deps), and commonly used extensions. Treat devcontainers as the common starting point for every developer in your company. Don't try to cram everything you could ever want to need into the dev container, use it to only handle that parts that suit everybody, or at least the parts your company is willing to standardize. Leave room for your developers to each individually extend it to meet their own requirements such as using the extensions they want, choosing the theme they want, or installing their own tools in it. Don't require that everyone on your team use the devcontainer. A devcontainer shouldn't be a replacement for a local development environment, it is a replacement for not knowing how to build your own local development environment or not wanting to. And now to answer your more specific questions: I recommend using the Microsoft built-in images as base images. Just use the vscode command to create a new template and customize it as needed. Put your environment variables, commonly used extensions (ansible?), and to install any tools that are likely to change throughout your project such as development dependencies. You can also set up mount-points for developer-specific configurations such as secrets, keys, and tokens. Here is a template for a new python project I started where I'm making very heavy use of devcontainers, vscode extensions and various configurations, and a few other things that I think you could use for inspiration: https://github.com/tclasen/template-python Note that the standard / specification for "VSCode DevContainers" is also mostly compatible with "GitHub CodeSpaces". But there is also a completely different standard / specification that isn't compatible for "Docker-Desktop Dev Environments" that might also be worth looking into. Both are basically the same thing as were designed to make it so you could just pick up your development environment and ship it as a reproducible artifact to hand to any new developer to your team and reduce on-board from weeks long with a set of instructions to minutes long with the requirement they have docker and vscode installed. Huge win in my book. More on reddit.com
Dev Containers: Clone Repository into Container Volume
Do you clone the repository into the windows file system? If you do, try cloning it inside wsl, to use the linux file system directly. More on reddit.com
Videos
19:40
How to build your first Devcontainer - YouTube
06:33
Dev Container Features & Lifecycle Hooks - YouTube
01:11:56
Exploring the Dev Container Ecosystem - YouTube
01:00
Add a Feature to your dev container #vscode #containers - YouTube
19:45
you should be using dev containers - YouTube
05:15
Beginner's Guide to VS Code Dev Containers - The Instant Dev ...
Development Containers
containers.dev › features
Available Dev Container Features
Development containers documentation and specification page.
GitHub
github.com › devcontainers › feature-starter
GitHub - devcontainers/feature-starter: A bootstrap repo for self-authoring Dev Container Features · GitHub
This repository contains a collection of two Features - hello and color. These Features serve as simple feature implementations. Each sub-section below shows a sample devcontainer.json alongside example usage of the Feature.
Starred by 419 users
Forked by 244 users
Languages Shell
DEV Community
dev.to › jajera › creating-your-own-dev-container-feature-for-vs-code-1men
Creating Your Own Dev Container Feature for VS Code - DEV Community
December 31, 2025 - Learn how to develop and publish custom Dev Container Features for VS Code, using the Amazon Q CLI feature as a practical example. Includes forking, feature creation, publishing to GHCR, and submitting to the official features index. Tagged with devcontainer, vscode, github, features.
Visual Studio Code
code.visualstudio.com › docs › devcontainers › containers
Developing inside a Container
November 3, 2021 - When you use Dev Containers: Add Dev Container Configuration Files, you're presented a list of scripts to customize the existing dev container configurations, such as installing Git or the Azure CLI: When you rebuild and reopen in your container, the Features you selected will be available in your devcontainer.json:
PAUL'S BLOG
paulyu.dev › article › revisiting-devcontainer-features
Re-visiting Dev Container Features | PAUL'S BLOG
December 2, 2022 - Since my original post, @BrigitMurtaugh published a post on the VS Code blog announcing new repos, the open dev container specification and discussed a new way of adding features. If you haven’t read the post, go check it out here. Additionally, a community member submitted feedback in the new devcontainers/features repo suggesting that Azure CLI extensions should just be supported as part of the azure-cli feature.
Development Containers
containers.dev › guide › author-a-feature
Authoring a Dev Container Feature
November 1, 2022 - The feature-starter repo contains a GitHub Action workflow that will publish each feature to GHCR. By default, each feature will be prefixed with the <owner/<repo> namespace. Using the hello world example from above, it can be referenced in a devcontainer.json with: ghcr.io/devcontainers/feature-starter/color:1.
Development Containers
containers.dev › implementors › features
Dev Container Features reference
Each property mirrors the behavior of the matching property in devcontainer.json, including the behavior that commands are executed from the context of the project workspace folder. For each lifecycle hook (in Feature installation order), each command contributed by a Feature is executed in ...
GitHub
github.com › joshuanianji › devcontainer-features
GitHub - joshuanianji/devcontainer-features: My custom devcontainer features · GitHub
Starred by 3 users
Forked by 3 users
Languages Shell
GitHub
docs.github.com › en › codespaces › setting-up-your-project-for-codespaces › adding-a-dev-container-configuration › introduction-to-dev-containers
Introduction to dev containers - GitHub Docs
You can add features to a devcontainer.json file from VS Code or from your repository on GitHub. See Adding features to a devcontainer.json file. If none of the predefined configurations meets your needs, you can create a custom configuration by writing your own devcontainer.json file.
DeepWiki
deepwiki.com › devcontainers › images › 6.3-feature-composition
Feature Composition | devcontainers/images | DeepWiki
2 weeks ago - Features are distributed as OCI artifacts from registries like ghcr.io and are declared in the features property of devcontainer.json. Each image in this repository uses features to compose its development environment rather than installing everything directly in the Dockerfile. This provides: Modularity: Tools are installed as independent units. Reusability: The same feature can be shared across multiple images. Version Control: Exact feature versions are locked with cryptographic hashes. Configurability: Features expose options for customization.
PAUL'S BLOG
paulyu.dev › article › extending-vscode-devcontainer-features
Extending Visual Studio Code Dev Container Features | PAUL'S BLOG
July 27, 2022 - Using this approach, I can build my own custom feature and reference them in the features block within the devcontainer.json file and add any Azure CLI extension like any other feature in the Dev Container build format.