Meteor アプリを VM にデプロイする場合、VM に Meteor をインストールして、Meteor run コマンドでアプリを実行できないのはなぜですか? ドキュメントの展開セクションには、tarball バンドルを作成し、それを Node と MongoDB を持つサーバーに展開するように記載されていますが、代わりに Meteor をサーバーにインストールすることはできませんか? そして、ポート 3000 をリッスンするように DNS エントリをセットアップします...なぜこのアイデアがうまくいかないのでしょうか?
2 に答える
あなたのアイデアはうまくいくでしょう。ただし、これを使用する場合は、より「本番」タイプの環境で実行することをお勧めします。そして、セットアップは非常に簡単です。
大まかに言えば、必要なものは次のとおりです。
- Node 0.8.x をインストールする必要があります
- MongoDB をインストールする必要があります
- こちらの指示に従ってデプロイしてください。これらは Meteor 0.5.5 用に更新されたばかりなので、注意してください。
- 永久に node.js パッケージをインストールする必要があります
生活を楽にするために、流星アプリの開始/停止を処理するスクリプトを作成しました。完全な 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に関しては厳しいですが、バンドルされたバージョンは開発バージョンと変わらないはずです. 作成したバンドルには、必要なすべての依存関係もバンドルされていることが保証されます。
meteor bundleに関するmeteor docsからの引用:
このコマンドは、完全に含まれた Node.js アプリケーションを tarball の形式で生成します。このアプリケーションを実行するには、Node.js 0.8 と MongoDB サーバーを用意する必要があります。その後、ノードを呼び出し、リッスンするアプリケーションの HTTP ポートと MongoDB エンドポイントを指定して、アプリケーションを実行できます。まだ MongoDB サーバーをお持ちでない場合は、MongoHQ の友人をお勧めします。
$ PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp node bundle/main.js
他のパッケージには他の環境変数が必要な場合があります (たとえば、電子メール パッケージには MAIL_URL 環境変数が必要です)。
基礎となるデータベースを開発バージョンの専用 MongoDB サーバーに変更したことはありませんが、上記の環境変数を設定するだけで可能になるはずです。
PS:
あなたが書いた:
そして、ポート 3000 をリッスンするように DNS エントリをセットアップします...
DNSエントリでポートを設定するのは難しいでしょう...