{"id":3583,"date":"2026-02-04T11:08:28","date_gmt":"2026-02-04T19:08:28","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/azure-sdk\/?p=3583"},"modified":"2026-02-05T11:41:03","modified_gmt":"2026-02-05T19:41:03","slug":"azd-devcontainer-extensions","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/azure-sdk\/azd-devcontainer-extensions\/","title":{"rendered":"Auto-install `azd` extensions in dev containers"},"content":{"rendered":"<h1>Auto-install <code>azd<\/code> extensions in dev containers<\/h1>\n<p><em>Welcome to the first <code>azd<\/code> mini blog! Things move fast &#8211; new features ship, and it&#8217;s easy to miss something useful. These short posts (1-minute reads, we promise) highlight features the team ships that you want to know about. No fluff, just what it is, why it matters, and how to use it.<\/em><\/p>\n<hr \/>\n<h2>What&#8217;s new?<\/h2>\n<p>The <code>azd<\/code> development (dev) container feature now supports an <code>extensions<\/code> option. You can specify a comma-separated list of <code>azd<\/code> extensions in your dev container configuration, and they install automatically when the container builds.<\/p>\n<p>Here&#8217;s what it looks like in your <code>devcontainer.json<\/code> file:<\/p>\n<pre><code class=\"language-json\">{\n  \"features\": {\n    \"ghcr.io\/azure\/azure-dev\/azd:latest\": {\n      \"extensions\": \"azd-ext-example,azd-ext-another\"\n    }\n  }\n}<\/code><\/pre>\n<p>No more &#8220;oh wait, I need to install that extension first&#8221; after spinning up your dev container.<\/p>\n<h2>Why it matters<\/h2>\n<p>Dev containers give you a ready-to-code environment in seconds. But if your project relies on <code>azd<\/code> extensions, you still had to install them manually after the container started. That&#8217;s friction &#8211; especially when onboarding new team members or switching between projects.<\/p>\n<p>Now your extensions are ready when the container starts. Open the dev container and run <code>azd up<\/code> &#8211; everything you need is already in place.<\/p>\n<p>This approach also applies to GitHub Codespaces, which uses the same <code>devcontainer.json<\/code> configuration. Your <code>azd<\/code> extensions install automatically whether you&#8217;re developing locally or in the cloud.<\/p>\n<h2>How to use it<\/h2>\n<ol>\n<li>Open your <code>.devcontainer\/devcontainer.json<\/code> file.<\/li>\n<li>Add (or update) the <code>azd<\/code> feature with the <code>extensions<\/code> option:<\/li>\n<\/ol>\n<pre><code class=\"language-json\">{\n  \"features\": {\n    \"ghcr.io\/azure\/azure-dev\/azd:latest\": {\n      \"extensions\": \"your-extension-name\"\n    }\n  }\n}<\/code><\/pre>\n<ol start=\"3\">\n<li>Rebuild your dev container.<\/li>\n<\/ol>\n<p>That&#8217;s it. The extensions install during container build.<\/p>\n<h2>Get started<\/h2>\n<p>Update your dev container configuration and rebuild. To learn more about creating dev containers, see the <a href=\"https:\/\/code.visualstudio.com\/docs\/devcontainers\/create-dev-container\">VS Code dev container docs<\/a>.<\/p>\n<h2>Feedback<\/h2>\n<p>Have questions or ideas? File an issue or start a discussion on <a href=\"https:\/\/github.com\/Azure\/azure-dev\">GitHub<\/a>. Want to help shape the future of <code>azd<\/code>? <a href=\"https:\/\/aka.ms\/azd-user-research-signup\">Sign up for user research<\/a>.<\/p>\n<hr \/>\n<p><em>This feature was introduced in <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/6460\">PR #6460<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The `azd` dev container feature now supports automatic extension installation.<\/p>\n","protected":false},"author":111321,"featured_media":3585,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[908,864,957],"class_list":["post-3583","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure-sdk","tag-azd","tag-azure-developer-cli","tag-devcontainers"],"acf":[],"blog_post_summary":"<p>The `azd` dev container feature now supports automatic extension installation.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts\/3583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/users\/111321"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/comments?post=3583"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts\/3583\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/media\/3585"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/media?parent=3583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/categories?post=3583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/tags?post=3583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}