【发布时间】:2013-02-14 04:13:51
【问题描述】:
我想知道,如果我将 Meteor 应用程序部署到 VM,为什么我不能在 vm 上安装 Meteor,然后使用 meteor run 命令运行我的应用程序?文档的部署部分说要创建一个 tarball 包并将其部署到具有 Node 和 MongoDB 的服务器,但我不能只在服务器上安装 Meteor 吗?然后设置我的 DNS 条目来监听 3000 端口……为什么这个想法行不通?
【问题讨论】:
标签: meteor
我想知道,如果我将 Meteor 应用程序部署到 VM,为什么我不能在 vm 上安装 Meteor,然后使用 meteor run 命令运行我的应用程序?文档的部署部分说要创建一个 tarball 包并将其部署到具有 Node 和 MongoDB 的服务器,但我不能只在服务器上安装 Meteor 吗?然后设置我的 DNS 条目来监听 3000 端口……为什么这个想法行不通?
【问题讨论】:
标签: meteor
你的想法会很好。但是,我只是建议,如果您要使用它,最好在更“生产”类型的环境中运行。而且很容易设置。
在高层次上,这是您需要的:
为了让我的生活更轻松,我创建了一个脚本来处理启动/停止我的流星应用程序。它将设置一切以使用完整的 MongoDB:
#!/bin/bash
SUCCESS=0
FAILURE=1
if [ $# -ne 1 ]
then
echo "Usage: start|stop|restart"
exit $FAILURE
fi
case "$1" in
start )
export MONGO_URL=mongodb://localhost:27017/<name of the database>
export PORT=3000
export ROOT_URL=http://yourhostname.com:3000
forever start bundle/main.js
;;
stop )
forever stop bundle/main.js
;;
restart )
forever restart bundle/main.js
;;
esac
【讨论】:
您可以在常规安装的 Meteor 上在 VM 中运行部署。
可以将其想象为使用内置开发服务器运行 rails 应用程序。 就 Meteor 而言,捆绑版本应该与开发版本没有什么不同。您创建的包可确保所有必要的依赖项也与其捆绑。
来自the meteor docs 关于meteor bundle的引用:
此命令将以 tarball 的形式生成一个完全包含的 Node.js 应用程序。要运行此应用程序,您需要提供 Node.js 0.8 和 MongoDB 服务器。然后,您可以通过调用节点、指定应用程序要侦听的 HTTP 端口和 MongoDB 端点来运行应用程序。如果您还没有 MongoDB 服务器,我们可以向 MongoHQ 的朋友推荐。
$ PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp node bundle/main.js
其他包可能需要其他环境变量(例如,电子邮件包需要 MAIL_URL 环境变量)。
好吧,我从未将底层数据库更改为具有开发版本的专用 MongoDB 服务器,但我认为只需设置上述环境变量即可。
附:
你写道:
然后设置我的 DNS 条目来监听端口 3000...
您将很难使用 DNS 条目设置端口...
【讨论】: