部署到aws服务器的Meteor热代码推送重启失败

时间:2013-07-13 11:20:27

标签: meteor

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

除非我将bundle -zxvf bundle.tgz捆绑到/ bundle目录中,否则一切正常。

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

这是我的服务脚本

  

从运行级别开始[2345]

     

停在运行级别[-2345]

     

respawn

     

重生限制10 5

     

脚本
  APP_DIR = /家庭/ Ubuntu的/束
  LOG_FILE =的/ var /数/ app.log

     

export PORT = 80 export

     

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

     

结束脚本

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

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

你可以使用类似永远的东西让它们继续运行,然后执行forever 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执行相同的操作。

答案 1 :(得分:0)

了解https://github.com/matb33/meteor-ec2-install内部的一些见解。

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