3

我有一些在 AWS EC2 实例上运行的 Meteor 应用程序。

一切正常,除非我捆绑然后 tar -zxvf bundle.tgz 进入 /bundle 目录。

该应用程序不像在meteor.com 上那样热部署。我必须重新启动服务器。

这是我的服务脚本

从运行级别开始 [2345]

在运行级别停止 [-2345]

重生

重生限制 10 5

脚本
APP_DIR=/home/ubuntu/bundle
LOG_FILE=/var/log/app.log

出口端口=80 出口

MONGO_URL=mongodb://somelogin:fakepasssword@somedomain:1231231/app_db

导出 ROOT_URL= http://somedomain.com

/usr/bin/node "$APP_DIR/main.js" 2>&1 >> $LOG_FILE

结束脚本

有任何想法吗?

4

2 回答 2

2

已部署的应用程序(通过 制作meteor bundle)不会进行热代码更改。您必须更新文件,然后停止并重新启动节点进程。

您可以使用像 forever 这样的东西来保持它们运行,然后执行 aforever restart让它们运行新代码

要永远使用,您可以使用以下脚本:

APP_DIR=/home/ubuntu/bundle
export PORT=80
export MONGO_URL=mongodb://somelogin:fakepasssword@somedomain:1231231/app_db
export ROOT_URL=http://somedomain.com
forever start "$APP_DIR/main.js"

然后,当您更新文件时,/home/ubuntu/bundle只需执行上述相同操作,但使用forever restart而不是forever start.

于 2013-07-13T11:41:52.073 回答
0

看看https://github.com/matb33/meteor-ec2-install里面的一些见解。

每当我部署和节点重新启动时,所有连接的客户端都会收到热代码推送。我也在进行适当的部署......也许部分热代码推送功能不会延续,例如会话,我不确定。

于 2013-07-13T14:42:07.650 回答