将Meteor 1.3应用程序部署到Bluemix

时间:2016-04-01 05:16:25

标签: node.js meteor ibm-cloud cloudfoundry

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。

0 个答案:

没有答案