我无法使用托管代理(VS 2017)构建VSTS,出现错误:
System.IO.IOException:磁盘空间不足
我尝试在Build,Repository definition上将"Clean“选项设置为true,但没有解决这个问题。我没有将这个选项设置为true,我认为这导致了目前的情况。
还安装了VSTS扩展“清理代理目录”,并添加为构建过程的最后一步,但也没有解决该问题。
是否有一个选项可以让我解决此问题并继续使用托管生成代理?
发布于 2017-09-10 23:19:39
Hosted agents offer 10 GB of space。您声明您的整个解决方案文件夹是2.6 GB。根据各种因素,您的构建输出通常在该大小的2倍范围内,如果不是更大的话。
如果你是一个Git用户,这整个被克隆的存储库可能也比2.6 GB大得多--克隆存储库不仅会减少代码的当前工作副本,还会减少所有的历史记录。
您可以通过在存储库设置的高级选项下启用Shallow fetch来控制克隆深度(例如,下拉了多少历史记录)。
如果你是一个TFVC用户,你可以检查你的工作区映射,以确保只有相关的源代码被拉下。
您可能处于这样一种情况: 10 GB的内存根本不足以满足您的需求。如果2.6 GB纯粹是代码,并且不包含二进制资产(图像、PDF、视频文件等),那么您可能希望开始模块化您的应用程序,以便可以构建和独立部署较小的部分。如果2.6 GB包含大量二进制资产,您可能希望将静态内容(图像等)从源代码中分离出来,并设计一个单独的静态内容部署过程。
发布于 2019-05-22 21:32:17
根据Microsoft's documentation的说法,
(微软托管的代理)为您的源和构建输出提供至少10 GB的存储。
因此,如果你得到“没有足够的磁盘空间错误”,这可能意味着你的源代码(文件,repos,分支,等等),占用的磁盘空间量,以及你的构建输出(构建过程产生的文件)超过了你的DevOps计划提供的10 GB的存储空间。
当得到这个错误时,我不得不删除一个旧的git代码库和一个旧的git分支,获得了17MB的可用空间,这足以让我的构建过程进行处理。因此,在我的例子中,空间被源代码占用了。这很可能是构建生成的文件太多或太大。也就是说,您只需要找出这两个中的哪一个是导致您的磁盘空间不足的原因,并努力释放它。
发布于 2021-11-16 14:58:27
有一个技巧可以通过删除缓存的docker图像来释放代理空间(当然,如果您不需要它们的话)。对于Microsoft hosted agent,有一个预先配置的docker映像列表。This SO answer描述了在哪里可以找到不同镜像/缓存的容器镜像上的文档。
这就像向cleanup the cached images添加一个额外的命令任务一样简单。对于Linux / Ubuntu:
steps:
- script: |
df -h
- script: |
docker rmi -f $(docker images -aq)
- script: |
df -hdf (无磁盘空间)命令显示节省了多少空间。这可能会释放另外5 5Gb的空间。
https://stackoverflow.com/questions/46141334
复制相似问题