You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Codespaces磁盘空间不足:自定义镜像额外占用空间排查与解决

GitHub Codespace自定义镜像启动失败问题

仓库结构

.
├── .devcontainer
│	└── devcontainer.json
├── .github
│	└── workflows
│		└── build_docker_image.yml
└── ingredients
 	└── .devcontainer
 		└── devcontainer.json

镜像构建流程

通过.github/workflows/build_docker_image.yml中的工作流构建镜像并推送到Docker Hub,核心命令如下:

devcontainer build --workspace-folder ingredients --image-name ${{ github.repository }}
docker push ${{ github.repository }}

相关配置文件内容

用于构建镜像的ingredients/.devcontainer/devcontainer.json

{
  "name": "xxxx xxxx",
  "image": "mcr.microsoft.com/devcontainers/universal:2"
}

用于启动Codespace的根目录.devcontainer/devcontainer.json

{
  "image": "docker.io/kostrykin/mobi-devcontainer-python:latest"
}

启动报错信息

[2023-11-22 11:16:32.738Z: docker: failed to register layer: ApplyLayer exit status 1 stdout: stderr: write /home/codespace/.local/lib/python3.10/site-packages/nvidia/cudnn/lib/libcudnn_adv_infer.so.8: no space left on device.

核心疑问

按逻辑自定义镜像和原镜像mcr.microsoft.com/devcontainers/universal:2应该完全等效——自定义镜像仅基于原镜像新增了一层几乎无内容的镜像层,且通过docker inspect确认两者实际大小一致。但使用自定义镜像启动Codespace时却出现磁盘空间不足的错误,请问额外占用空间的来源是什么?

后续优化疑问

除了将主机配置从32GB升级到64GB,或者在devcontainer的initializeCommand中执行docker system prune --all --force,有没有更优雅的解决办法?

补充信息

使用上述initializeCommand成功创建Codespace后,执行df -h的输出如下:

/workspaces/mobi-devcontainer-python (main) $ df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay          32G   13G   18G  43% /
tmpfs            64M     0   64M   0% /dev
shm              64M     0   64M   0% /dev/shm
/dev/root        29G   22G  7.2G  76% /usr/sbin/docker-init
/dev/loop3       32G   13G   18G  43% /workspaces
/dev/sda1        44G  148K   42G   1% /tmp

内容的提问来源于stack exchange,提问作者kostrykin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 19:45:20