【问题标题】:How do you point deployed Meteor app to a new version?您如何将部署的 Meteor 应用程序指向新版本?
【发布时间】:2014-08-21 10:02:26
【问题描述】:

我特别指的是在我自己的服务器上运行的应用程序包。

我有一个 Meteor 应用程序在 ~/bundle 中永久使用,我的 git 存储库位于 ~/project。我在 ~/release 中保留了不同的发布包 tarball。

~/release
  |-0.1.0.tar.gz
  |-0.1.1.tar.gz
  |-0.2.0.tar.gz

从 git 中提取更改并切换到最新版本后,我想捆绑我的新版本并利用热代码重新加载和(希望?)保持客户端连接活跃。最好的方法是什么?

注意:我也在使用 nginx;那么这会以任何方式影响这个过程吗?即它会杀死打开的客户端连接吗?更新到较新的应用版本后是否必须重新加载 nginx?

谢谢。

【问题讨论】:

标签: nginx meteor forever


【解决方案1】:

您可以使用这样的脚本。

确保在你的 ssh 配置文件中定义你的服务器,例如

Host yourserver
User youruser
Port 22
Hostname yourapp.com
IdentityFile ~/.ssh/yourkeyfile.pem
TCPKeepAlive yes
IdentitiesOnly yes

然后你可以有一个这样的 bash 脚本:

#!/bin/bash
cd ~/Desktop/yourappdirectory
rm -f ~/Desktop/yourapp.tar.gz
meteor bundle ~/Desktop/yourapp.tar.gz
scp ~/Desktop/yourapp.tar.gz yourserver:~/yourapp.tar.gz
ssh yourserver  <<'ENDSSH'
cd ~/
tar -xzf yourapp.tar.gz
sudo rm -rf yourapp
mv bundle yourapp
cd yourapp/programs/server/node_modules
rm -rf fibers
rm -rf bcrypt
sudo npm install fibers@1.0.1
sudo npm install bcrypt
cd ~/yourapp/programs/server/npm/mongo-livedata/main
rm -r mongodb
sudo npm install mongodb@1.4.1
cd ~/
sudo forever stop ~/yourapp/main.js
sudo MONGO_URL=mongodb://user:pass@ip:27017/meteor PORT=3000 ROOT_URL=https://yoursite.com forever start ~/yourapp/main.js
ENDSSH

然后只需运行 bash,它就会为您上传和部署您的应用程序。只是一个说明,我无法将发布版本放入其中,因此只需上传到 ~/yourapp.tar.gz,然后解绑到 ~/yourapp

然后,如果客户端在站点上,流星应用程序将在任何客户端上重新加载热代码。

【讨论】:

    猜你喜欢
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多