Skip to main content

codespace 的创建和删除故障排除

本文提供了在创建或删除代码空间时可能遇到的常见问题(包括存储和配置问题)的疑难解答步骤。

Note

GitHub Codespaces 在 GHE.com 的子域(例如 octocorp.ghe.com)上不可用。

创建代码空间

没有创建代码空间的权限

GitHub Codespaces 并非对所有存储库都可用。 如果未显示用于创建 codespace 的选项,则 GitHub Codespaces 可能不适用于该存储库。

如果个人帐户中每月包含 GitHub Codespaces 的剩余使用量,或者设置了付款方式和支出限制,则可以为任何公共存储库创建 codespace。

还可以为至少具有读取访问权限的任何专用存储库创建 codespace,前提是此专用存储库归个人帐户所有。 如果存储库是专用或内部存储库并且归组织所有,则可能可以或无法为该存储库创建 codespace,具体取决于组织或其母企业的设置。

如果无法为存储库创建 codespace,可能是由以下组织或企业设置造成的。

  • 组织和企业所有者可以选择哪些用户可以访问组织的专用和内部存储库中的 GitHub Codespaces。 有关详细信息,请参阅“为组织启用或禁用 GitHub Codespaces”。
  • 组织和企业所有者可以禁用为组织的部分或全部专用和内部存储库创建分支这一功能。 如果仅对存储库具有读取权限,并且无法为其创建分支,则无法为该存储库创建 codespace。 有关详细信息,请参阅“管理组织的复刻政策”。
  • 如果你有 托管用户帐户,则不能为个人存储库创建 codespace,除非存储库是组织拥有的存储库的分支,并且允许使用 GitHub Codespaces,费用由组织承担。 有关详细信息,请参阅“关于 Enterprise Managed Users”。

有关可能会影响是否可以创建 codespace 的其他组织和企业设置的信息,请参阅“为组织启用或禁用 GitHub Codespaces”。

有关个人帐户包含的用量和设置支出限制的详细信息,请参阅“关于 GitHub Codespaces 的计费”和“管理 GitHub Codespaces 的支出限制”。

代码空间在创建时未打开

如果创建了代码空间,但未打开:

  1. 如果出现缓存或报告问题,请尝试重新加载页面。
  2. 转到 GitHub Codespaces 页面: https://github.com/codespaces ,检查新的 codespace 是否在此处列出。 该过程可能已成功创建代码空间,但未向浏览器报告。 如果列出了新的代码空间,则可以直接从该页打开它。
  3. 重试为存储库创建代码空间,以排除暂时性通信故障。

如果仍然无法为其中 GitHub Codespaces 可用的存储库创建 codespace,请 可能需要联系支持人员。 有关详细信息,请参阅“使用对 GitHub Codespaces 的支持”。

Codespace 创建失败

如果创建 codespace 失败,则可能是由于云中的临时基础结构问题(例如,为 codespace 预配虚拟机时出现问题)。 失败的一个不太常见的原因是生成容器所需的时间超过一小时。 在这种情况下,将取消生成,并且 codespace 创建将失败。

Note

将永不使用未成功创建的 codespace,并应将其删除。 有关详细信息,请参阅“删除代码空间”。

如果创建 codespace 但创建失败:

  1. 检查 GitHub 的“状态”页是否有任何活动事件。

  2. 转到 GitHub Codespaces 页,删除 codespace,然后创建新的 codespace。

  3. 如果容器正在生成,请查看正在流式传输的日志,并确保生成未停滞。 将取消花费超过一小时的容器生成,从而导致创建失败。

    发生这种情况的一种常见情况是,如果正在运行的脚本提示用户输入并等待答案。 如果是这种情况,请删除交互式提示,以便生成以非交互方式完成。

Note

若要在生成期间查看日志,请执行以下操作:

  • 在浏览器中,如果生成过程的初始步骤花费的时间超过几秒钟,则会显示“设置你的 codespace”页面。 单击“查看日志”。

    浏览器中“设置你的 codespace”页面的屏幕截图。 “查看日志”链接以深橙色轮廓突出显示。

  • 在 VS Code 桌面应用程序中,单击显示的“设置远程连接”弹出消息中的“生成 codespace” 。

    VS Code 中弹出消息的屏幕截图,内容为“设置远程连接: 生成 codespace”。

    日志消息打印到 VS Code 中的“终端”

  1. 如果容器需要很长时间才能生成,请考虑使用预生成来加快 codespace 创建速度。 有关详细信息,请参阅“配置预生成”。

删除代码空间

codespace 只能通过以下方式删除:

  • 创建 codespace 的人员
  • 组织拥有的 codespace 的组织所有者
  • 保留期结束时自动删除

有关详细信息,请参阅“删除代码空间”和“配置 codespace 的自动删除”。

容器存储

创建代码空间时,存储量是有限的,随着时间的推移,可能需要释放空间。 尝试在 GitHub Codespaces 终端中运行以下任一命令以释放存储空间。

  • 使用 sudo apt autoremove 删除不再使用的包。
  • 使用 sudo apt clean 清理 apt 缓存.
  • 使用 sudo find / -printf '%s %p\n'| sort -nr | head -10 查看 codespace 中前 10 个最大的文件。
  • 删除不需要的文件,如生成工件和日志。

一些更具破坏性的选项:

  • 使用 docker system prune(如果要删除所有映像,请追加 -a;如果要删除所有卷,请追加 --volumes)删除不使用的 Docker 映像、网络和容器。
  • 从工作树中删除不跟踪的文件:git clean -i

配置

如果对 codespace 配置的更改导致容器错误,则 codespace 将在恢复模式下运行,并且你将看到错误消息。

This codespace is currently running in recovery mode due to a container error.

查看创建日志并根据需要更新开发容器配置。 有关详细信息,请参阅“GitHub Codespaces 日志”。

然后,可以尝试重启 codespace,或重新生成容器。 有关重新生成容器的详细信息,请参阅“开发容器简介”。