【问题标题】:Atlasian Elastic Bamboo build error: Too many open files error for Angular CLI buildAtlassian Elastic Bamboo 构建错误:Angular CLI 构建的打开文件过多错误
【发布时间】:2018-08-12 01:32:50
【问题描述】:
当我在 Bamboo 上构建 Angular-CLI 项目时,出现以下错误:
Error: EMFILE: too many open files, open '<file...>'
EMFILE: too many open files, open '<file...>'
我在 AWS EC2 linux 实例上运行弹性 Bamboo。我查看了Atlassian's support forum,但他们只给出了解决问题的一般指导方针,而不是如何将修复程序实际添加到使用 AWS EC2 实例的现有竹子设置中。
【问题讨论】:
标签:
angular
angular-cli
bamboo
build-error
【解决方案1】:
在您的 Angular CLI 项目中,在您的 .angular-cli.json (cli v1.x.x) 或 angular.json (cli v6.x.x+) 下的 assets 下,您可能添加了一个包含大量文件的文件夹。当 Angular cli 构建项目时,文件被复制到 build 文件夹,这是导致错误的主要原因,因为该过程达到了可以在系统级别打开和复制的文件数量的限制。
要解决此问题,您只需在竹管理菜单中更新您的 AWS EC2 映像配置,以包含支持论坛中描述的修复程序。
- 以 root/admin 用户身份登录您的竹子网站
- 下一步点击右上角菜单中的齿轮(设置)图标
- 点击
Overview
-
ELASTIC BAMBOO下的左侧菜单,点击Image configurations
- 在配置列表中,找到用于为特定构建创建竹子工作者实例的配置,您可能需要联系您的系统管理员/基础架构人员来解决这个问题,但它通常是唯一启用的/ 没有变灰。针对该特定配置行单击
edit。
- 向下滚动到
Instance startup script 文本字段
-
将以下行添加到脚本列表的底部
#increase open file limit
sudo echo "* soft nofile 40000" >> /etc/security/limits.conf
sudo echo "* hard nofile 40000" >> /etc/security/limits.conf
请注意* 表示任何用户,但更具体地说,您可以将其替换为Bamboo_USER
点击Save
-
ELASTIC BAMBOO下的左侧菜单,点击Instances
- 右上方区域,单击
Terminate all instances 删除任何带有旧脚本的实例,请确保在终止时您没有构建任何东西,因为构建将被中断并失败。
- 现在您应该能够再次开始构建并且问题应该得到解决,您可能需要重新启动竹实例一次才能使脚本生效。