VSTS托管代理,磁盘空间不足

时间:2017-09-10 13:41:53

标签: azure-devops azure-pipelines

我无法使用托管代理(VS 2017)构建VSTS,但错误:

System.IO.IOException:磁盘上没有足够的空间

我尝试在Build,Repository定义中将“Clean”选项设置为true而不解决问题。我没有将此选项设置为true,我认为这导致了当前的情况。

还安装了VSTS扩展“Clean Agent Directories”并添加为构建过程的最后一步,但未解决问题。

是否有一个选项可以让我解决此问题并继续使用托管构建代理?

2 个答案:

答案 0 :(得分:3)

Hosted agents offer 10 GB of space。您声明整个解决方案文件夹是2.6 GB。如果不是更大,您的构建输出通常会在2倍大小的范围内,具体取决于各种因素。

如果您是Git用户,那么克隆的整个仓库可能会大大超过2.6 GB - 克隆仓库不仅会降低代码的当前工作副本,还有所有的历史。

您可以通过在回购设置的高级选项下启用浅层提取来控制克隆深度(例如,下拉历史记录的数量)。

如果您是TFVC用户,则可以检查工作区映射,以确保仅下拉相关的源代码。

您可能处于10 GB根本不足以满足您的目的的情况。如果2.6 GB纯粹是代码并且不包含二进制资产(图像,PDF,视频文件等),您可能需要开始模块化应用程序,以便可以构建和独立部署更小的子部分。如果2.6 GB包含大量二进制资产,您可能希望将静态内容(图像等)与源代码分开,并设计单独的静态内容部署过程。

答案 1 :(得分:0)

根据Microsoft's documentation

  

(由Microsoft托管的代理)至少为您的源代码提供10 GB的存储空间并构建输出。

因此,如果收到“磁盘空间不足错误”,则可能表示源代码使用的磁盘空间量(文件,存储库,分支等),以及您的构建输出所占用的磁盘空间量(由于构建过程而生成的文件)已超过DevOps计划提供的10 GB 存储空间。 >

出现此错误时,我必须删除一个旧的git repo和一个旧的git分支,获得17 MB的可用空间,足以处理我的构建。因此,在我的情况下,该空间已被源代码占用。构建可能会生成太多或太大的文件。也就是说,您只需要找出这两个磁盘中的哪一个是磁盘空间不足的原因,然后进行释放即可。