跳至主要内容

Codespaces 创建和删除故障排除

本文提供了解决创建或删除 codespace 时可能遇到的常见问题的故障排除步骤,包括存储和配置问题。

创建 codespaces

无法访问以创建 codespace

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

如果您在个人帐户上还有剩余的 GitHub Codespaces 月度包含使用量,或者您已设置了付款方式和支出限额,则可以为任何公共仓库创建 codespace。

您还可以为任何您至少具有读取权限的私有仓库创建 codespace,前提是该私有仓库由个人帐户拥有。如果仓库是私有的,并且由组织拥有,则您可能能够或可能无法为该仓库创建 codespace,具体取决于组织或其父级企业的设置。

如果您无法为存储库创建 Codespace,这可能是由于以下组织或企业设置之一。

  • 组织和企业所有者可以选择哪些用户可以访问组织私有存储库中的 GitHub Codespaces。有关更多信息,请参阅“为您的组织启用或禁用 GitHub Codespaces”。
  • 组织和企业所有者可以为组织的某些或所有私有存储库禁用分叉。如果您只有对存储库的读取权限,并且无法分叉它,那么您无法为该存储库创建 Codespace。有关更多信息,请参阅“管理您的组织的分叉策略”。

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

有关个人帐户的包含使用情况以及设置支出限额的更多信息,请参阅“关于 GitHub Codespaces 的计费”和“管理 GitHub Codespaces 的支出限额”。

创建后 Codespace 不会打开

如果您创建了一个 Codespace 但它没有打开

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

如果您仍然无法为启用了 GitHub Codespaces 的仓库创建 codespace,则可能需要联系支持。有关更多信息,请参阅“与 GitHub Codespaces 支持人员合作”。

Codespace 创建失败

如果 codespace 创建失败,很可能是由于云中的临时基础设施问题造成的 - 例如,为 codespace 配置虚拟机时出现问题。失败的另一个不太常见的原因是,如果构建容器的时间超过一小时。在这种情况下,构建将被取消,codespace 创建将失败。

注意:未成功创建的 codespace 将永远无法使用,应将其删除。有关更多信息,请参阅“删除 codespace”。

如果您创建了 codespace 但创建失败

  1. 检查 GitHub 的 状态页面,查看是否有任何活动事件。

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

  3. 如果容器正在构建,请查看正在流式传输的日志,并确保构建没有卡住。构建时间超过一小时的容器将被取消,导致创建失败。

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

    注意:要查看构建期间的日志

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

      Screenshot of the "Setting up your codespace" page in a browser. The link "View logs" is highlighted with a dark orange outline.

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

      Screenshot of a popup message in VS Code, reading "Setting up remote connection: Building codespace."

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

  4. 如果您有一个构建时间很长的容器,请考虑使用预构建来加快 codespace 创建速度。有关更多信息,请参阅“配置预构建”。

删除代码空间

代码空间只能由以下人员删除:

  • 创建代码空间的人。
  • 组织拥有代码空间的组织所有者。
  • 在保留期结束时自动删除。

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

容器存储

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

  • 使用 sudo apt autoremove 删除不再使用的软件包。
  • 使用 sudo apt clean 清理 apt 缓存。
  • 使用 sudo find / -printf '%s %p\n'| sort -nr | head -10 查看代码空间中最大的 10 个文件。
  • 删除不需要的文件,例如构建工件和日志。

一些更具破坏性的选项

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

配置

如果对开发容器配置的更改导致容器错误,您的代码空间将在恢复模式下运行,您将看到错误消息。

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

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

然后,您可以尝试重新启动代码空间或重建容器。有关重建容器的更多信息,请参阅“开发容器简介”。