Skip to content

Github Codespaces

Github 账户限额

当使用 Github Codespaces 等免费额度超出后,会获得高额账单,尽可能给账户限额,进入 setting > Billing and plans > Plans and usage,找到页面中的 Manage spending limit,设定一个消费阈值。

提示

没有绑卡的用户在使用完免费额度后会被限制使用,并不会出账单,无需担心这个问题。

具体如何限额参考 官方文档

端口转发外部访问

使用 Github Codespaces 运行项目并且映射端口后,可以设置转发的权限为 privatepublicprivate to organization ,只有 public 是不需要鉴权就可以公网访问的,其它则需要鉴权。在通过 web 访问时,由于登录了 Github 账户,所以公网访问转发的域名链接时,会携带上 Github 的 cookie 并通过鉴权。

如果通过 api 调用,则需要添加一个X-Github-Token: <Token>头,token 值可以在 Codespaces 的环境中输入 shell 命令获取,参考 官方文档

sh
echo $GITHUB_TOKEN

环境变量

除了 GITHUB_TOKEN 环境变量外,Github Codespaces 容器中还配置了很多关于 Gtihub 和 Codespaces 的 环境变量

如果需要自己配置环境变量,可以通过修改 devcontainer.json 配置文件中的 remoteEnv 字段来添加自己的公共环境变量,如果是数据库地址和密码等私有环境变量,可以在 github 配置 Codespaces 设置中设置 Codespaces secrets 中来配置。

配置 bash/zsh 持久化

Open in GitHub Codespaces

如何获得一个打开 Codespaces 的链接,进入需要生成链接的仓库,然后点击绿色的 code 按钮,在 Codespaces 栏有一个 三点按钮,点击三点按钮选择 Share a deep link。

或者 参考文档

默认镜像

Github Codespaces 的默认镜像是 mcr.microsoft.com/devcontainers/universal:2.10.1-focal,它有非常齐全的开发环境,如果你需要给 Github Codespaces 添加 .devcontainer.json 配置容器,建议使用这个默认镜像,除非你自己清楚或者有能力定制适合项目的开发环境。

提示

在 Codespaces 中的终端输入devcontainer-info,可以获取到当前使用的镜像详细信息,或者使用devcontainer-info content-url只获取镜像的链接。

如果想在 Dev in Container 使用这个功能齐全的基础镜像,可以在命令面板输入 Add Dev Container Configuration Files ,并且在候选列表输入栏中输入 universal 来选择这个基础镜像。

如果你需要在镜像中使用 Docker,还需要勾选 Docker in Docker 这个 feature。

清理 Codespaces 空间

一些长期维持的 Codespaces,会长期的占据空间额度,可以使用以下命令,清理 Codespaces 的空间。

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

使用 docker system prune 删除不使用的 Docker 映像、网络和容器。

sh
docker system prune
# 删除所有镜像
docker system prune -a
# 删除所有卷
docker system prune --volumes

从工作树中删除不跟踪的文件

sh
git clean -i

参考文档

Git 身份验证

参考文档