Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

限制 codespace 的基础映像

可以指定哪些基础映像可用于在组织内创建的新 codespace。

Who can use this feature

To manage image constraints for an organization's codespaces, you must be an owner of the organization.

概述

创建 codespace 时,远程虚拟机上会自动创建 Docker 容器。 Docker 容器是通过 Docker 映像创建的。 映像实际上是 Docker 容器的模板,它确定了 codespace 提供的结果环境的许多方面。

可以在存储库的开发容器配置中指定映像,从而选择要用于 codespace 的映像。 例如,可以使用 devcontainer.json 文件中的 image 属性来执行此操作。

JSON
"image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:18",

有关详细信息,请参阅 containers.dev 上的开发容器规范

如果未在存储库的开发容器配置中指定映像,则使用默认映像。 默认映像包含许多常用语言和常用工具的运行时版本。 有关详细信息,请参阅“开发容器简介”。

作为组织所有者,你可以添加一个策略来限制哪些映像可用于组织内创建的 codespace。

如果开发容器配置中指定的映像与其中一个允许的映像不匹配,则当有人尝试为存储库创建 codespace 时,会显示以下消息:

无法创建 codespace:根据组织管理员设置的组织策略,不允许使用基础映像“来自开发容器配置的详细信息”。

注释

  • 基础映像策略仅在创建 codespace 时适用。 目前,在重新生成容器时不适用。 将来的版本中可能会发生变化。 有关详细信息,请参阅“codespace 生命周期”。
  • 基本映像策略不适用于默认映像,也不适用于在开发容器配置中引入错误导致无法重新生成容器的情况下用于恢复 codespace 的映像。

设置组织范围和存储库特定的策略

创建策略时,您可以选择是将其应用于组织中的所有存储库,还是仅应用于指定的存储库。 如果设置了组织范围的策略,则为各个存储库设置的任何策略都必须在组织级别设置的限制范围内。 添加策略会增加映像的限制,而不是减少。

例如,你可以创建一个组织范围的策略,将基础映像限制为十个指定映像中的任意一个。 然后,可以为存储库 A 设置一个策略,将映像限制为仅在组织级别指定的两个映像的子集上。 为存储库 A 指定其他映像将不起作用,因为这些映像未在组织级别策略中指定。 如果添加组织范围的策略,则应将其设置为组织中任何存储库可用的最大映像选择范围。 然后,您可以添加特定于存储库的策略以进一步限制选择。

注意:Codespace 策略仅适用于组织将为其计费的 codespace。 如果个人用户为组织中的存储库创建 codespace,并且不会对组织进行计费,则 codespace 不受这些策略的约束。 有关如何选择谁可以创建对组织进行计费的 codespace 的信息,请参阅“为组织启用 GitHub Codespaces”。

添加策略以定义允许的映像

  1. 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的组织”。 贵组织在配置文件菜单中 2. 在组织旁边,单击“设置”。 设置按钮 1. 在边栏的“代码、规划和自动化”部分中,选择“ Codespaces”,然后单击“策略” 。

  2. 在“codespace 策略”页上,单击“创建策略”。

  3. 输入新策略的名称。

  4. 单击“添加约束”并选择“基础映像” 。

    “添加约束”下拉菜单的屏幕截图

  5. 单击 编辑约束。

    用于编辑约束的铅笔图标的屏幕截图

  6. 在“允许的值”字段中,输入想要允许的映像的完整 URL。

    “允许的值”字段中条目的屏幕截图

    注意:必须指定与开发容器配置中指定的值完全匹配的映像 URL。

  7. 单击加号按钮 () 添加值。

  8. 如果需要,请重复前两个步骤以添加更多映像 URL。

  9. 单击对话框外部将其关闭。

  10. 默认情况下,策略设置为应用于所有存储库,如果你希望它仅应用于组织中的某些存储库,请单击“所有存储库”,然后在下拉菜单中单击“所选存储库”。

    选择了“所选存储库”的屏幕截图

    选中“所选存储库”后:

    1. 单击

      用于编辑设置的齿轮图标的屏幕截图

    2. 选择要应用此策略的存储库。

    3. 在存储库列表的底部,单击“选择存储库”。

      此策略的选定存储库的屏幕截图

  11. 如果要向策略添加另一个约束,请单击“添加约束”并选择另一个约束。 有关其他约束的信息,请参阅:

  12. 向策略添加完约束后,单击“保存”。

当有人尝试创建可向组织收费的新 codespace 时,将应用该策略。 基本映像约束不会影响现有 codespace(无论是活动的还是停止的)。

编辑策略

可以编辑现有策略。 例如,你可能想要在策略中添加或移除约束。

  1. 显示“Codespace policies(代码空间策略)”页。 有关详细信息,请参阅“添加策略以定义允许的映像”。
  2. 单击要编辑的策略的名称。
  3. 单击“基础映像”约束旁边的铅笔图标 ()。
  4. 添加或移除映像 URL。
  5. 单击“保存”。

删除策略

  1. 显示“Codespace policies(代码空间策略)”页。 有关详细信息,请参阅“添加策略以定义允许的映像”。

  2. 单击要删除的策略右侧的删除按钮。

    策略的“删除”按钮的屏幕截图