Skip to main content

代码空间创建和删除的故障排除

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

在本文中

创建代码空间

没有创建代码空间的权限

GitHub Codespaces 不适用于所有存储库。 如果未显示用于创建代码空间的选项, GitHub Codespaces 则可能无法用于该存储库。

如果你的个人帐户中还有每月包含的 GitHub Codespaces 剩余用量,或者你已设置付款方式和支出限制,则可以为任何公共仓库创建代码空间。

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

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

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

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

有关个人帐户包含的用量和设置支出限制的详细信息,请参阅 GitHub Codespaces 计费设置预算以控制按流量计费的产品的支出

代码空间创建后无法打开

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

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

如果仍然无法为可用 GitHub Codespaces 存储库创建代码空间, 可能需要联系支持人员。 有关详细信息,请参阅“与 GitHub Codespaces 支持协作”。

Codespace 创建失败

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

注意

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

如果创建代码空间并且创建失败:

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

  2. 转到GitHub Codespaces页面,删除代码空间,并创建新的代码空间。

  3. 如果容器正在构建,请查看流日志,确保构建未停滞。 超过一小时的容器构建将被取消,导致构建失败。

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

注意

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

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

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

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

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

日志消息将输出到终端 VS Code

  1. 如果容器需要很长时间才能生成,请考虑使用预生成来加快 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 删除未使用的 Docker 镜像、网络和容器。如果要删除所有镜像,请追加 -a;如果要删除所有卷,请追加 --volumes
  • 从工作树中删除不跟踪的文件:git clean -i

配置

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

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

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

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