Meteor 1.3几天前发布。
使用cf push
Meteor 1.3应用程序部署到IBM Bluemix可能会因ENOSPC错误而失败。似乎只有简单的Meteor 1.3应用程序才能成功部署,因为只有在删除了许多软件包或文件(或创建一个新的应用程序而不添加许多软件包)之后,它才能正常工作。
ENOSPC表示没有剩余空间或观看的文件数已达到允许的最大值。
我认为后者可能就是这种情况。 Node.JS应用程序的解决方案是增加限制,如Node.JS Error: ENOSPC:
中所述 echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
但是,尝试在Bluemix中使用sudo会返回
sudo:没有tty存在且没有指定askpass程序
在cf-meteor-buildpack存储库中创建了一个GitHub问题,该问题显示了其他一些遇到同样问题的人: https://github.com/cloudfoundry-community/cf-meteor-buildpack/issues/20
如何将Meteor 1.3应用程序成功部署到Bluemix?
更新 我发现只需向应用程序添加一个包并部署它就会导致ENOSPC错误。如果没有该软件包,应用程序将部署并成功运行,并且Bluemix仪表板中显示的总磁盘使用量仅为 220.1 MB 。默认磁盘配额为1 GB,因此实际上还有足够的可用空间。因此,错误可能是由超过最大文件数引起的,而不是由达到的磁盘配额引起的。
可以肯定的是,我通过Cloud Foundry的manifest.yml将磁盘配额增加到2 GB,当我添加额外的软件包时仍然会出现ENOSPC错误。如果没有该软件包,则仪表板中的磁盘使用率为“220.1 MB / 2 GB”。该软件包(kadira:flow-router)不太可能需要1.8 GB的空间。
Meteor 1.3创建的文件比以前的版本多得多,因为有一个新的node-modules目录,许多单独的Node.js模块都安装在该目录中。
要检查max_user_watches的值,我将此行添加到buildpack脚本中:
cat /proc/sys/fs/inotify/max_user_watches
显示的结果是8192
。
然后我添加了这一行来尝试更改值:
echo 32768 > /proc/sys/fs/inotify/max_user_watches
结果是/proc/sys/fs/inotify/max_user_watches: Permission denied
。
是否可以通过Cloud Foundry增加允许的最大文件监视数量?操作系统是Linux。