跳至主要内容

向 devcontainer.json 文件添加功能

借助功能,您可以快速向开发容器配置中添加工具、运行时或库。

功能是安装代码和开发容器配置的独立单元,旨在适用于各种基础容器映像。您可以使用功能快速向 Codespace 映像添加工具、运行时或库。有关详细信息,请参阅 Development Containers 网站上的可用功能功能规范

您可以从 VS Code 或 GitHub.com 上的存储库向 `devcontainer.json` 文件添加功能。使用本文中的选项卡显示每种添加功能方式的说明。

向 `devcontainer.json` 文件添加功能

  1. 导航到 GitHub.com 上的存储库,找到 `devcontainer.json` 文件,然后单击 以编辑文件。

    如果您还没有 `devcontainer.json` 文件,现在可以创建一个。有关详细信息,请参阅“开发容器简介”。

  2. 在文件编辑器的右侧,在市场选项卡中,浏览或搜索要添加的功能,然后单击该功能的名称。

    Screenshot of the "Marketplace" tab with "Terra" in the search box and the Terraform feature listed in the search results.

  3. 在“安装”下,单击代码片段以将其复制到剪贴板,然后将该片段粘贴到 `devcontainer.json` 文件中的 `features` 对象中。

    Screenshot of the "Marketplace" tab showing the installation code snippet for Terraform.

    "features": {
         // ...
         "ghcr.io/devcontainers/features/terraform:1": {},
         // ...
     }
    
  4. 默认情况下,将使用该功能的最新版本。要选择其他版本或为该功能配置其他选项,请展开“选项”下列出的属性以查看可用值,然后通过手动编辑 `devcontainer.json` 文件中的对象来添加这些选项。

    Screenshot of the "Options" section of the "Marketplace" tab, with the "version" and "tflint" properties expanded.

    "features": {
         // ...
         "ghcr.io/devcontainers/features/terraform:1": {
             "version": "1.1",
             "tflint": "latest"
         },
         // ...
     }
    
  5. 提交对 `devcontainer.json` 文件的更改。

配置更改将在从该存储库创建的新 Codespace 中生效。要使更改在现有 Codespace 中生效,您需要将 `devcontainer.json` 文件的更新拉取到 Codespace 中,然后为该 Codespace 重新构建容器。有关详细信息,请参阅“开发容器简介”。

要在本地工作时在 VS Code 中添加功能,并且未连接到代码空间,你必须安装并启用“Dev Containers”扩展。有关此扩展的详细信息,请参阅 VS Code Marketplace

  1. 使用 Shift+Command+P(Mac)或 Ctrl+Shift+P(Windows/Linux)访问 VS Code 命令面板。

  2. 开始键入“add dev”,然后单击Codespaces:添加 Dev 容器配置文件

    Screenshot of the Command Palette, with "add dev" entered and "Codespaces: Add Dev Container Configuration Files" listed.

  3. 单击修改活动配置

  4. 更新你的功能选择,然后单击确定

  5. 如果你正在代码空间中工作,则提示将出现在右下角。若要重新生成容器并将更改应用于你正在工作的代码空间,请单击立即重新生成

    Screenshot of the message: "We've noticed a change to the dev container configuration." Below this is the "Rebuild Now" button.