在heroku上部署Meteor 1.0应用程序后出现应用程序错误

smo*_*cat 8 deployment heroku mongodb meteor

我正在尝试使用以下buildpack在heroku上部署meteor.js应用程序(v 1.0):
https://github.com/AdmitHub/meteor-buildpack-horse
并遵循本教程:
http://www.growthux .COM/UX-HTML,CSS,JS-生长黑客/安装-流星上的Heroku

我的应用程序更像是一个静态网站,我正在使用数据库构建一个简单的后台办公室:
- 存储管理员用户和图像路径,然后在我的模板中动态呈现.

在Heroku上创建我的应用程序后,设置ROOT_URL变量,在MONGO HQ上将MONGO_URL =变量设置为我的外部数据库,(尝试mongo实验室,同样的问题),最后推送到Heroku,我收到此错误信息时,我访问网址:

应用程序错误

应用程序中发生错误,无法提供您的页面.请稍后重试.

如果您是应用程序所有者,请检查日志以获取详细信息.

所以我做了:

2014-11-10T17:10:23.825922 + 00:00 heroku [web.1]:使用SIGKILL停止进程2014-11-10T17:10:23.825723 + 00:00 heroku [web.1]:错误R10(启动超时) - > Web进程在发布后的60秒内未能绑定到$ PORT
2014-11-10T17:10:24.584852 + 00:00 heroku [web.1]:状态从开始变为崩溃2014-11-10T17:10:24.574995 +00:00 heroku [web.1]:进程退出状态137 2014-11-10T17:10:26.415257 + 00:00 heroku [router]:at = error code = H10 desc ="App crashed"method = GET path ="/"host = cle-meteor.herokuapp.com request_id = ffc312a1-316d-4337-9165-caa492aa7c15 fwd ="80.13.242.126"dyno = connect = service = status = 503 bytes =

不确定我是否在部署过程中做错了,或者我是否必须重新考虑我的应用程序在不在本地运行时如何与数据库交互.
任何见解?

cob*_*boy 5

我有一个类似的问题,结果是我从ROOT_URL中删除了"http://".

您的日志消息相当通用,之前有什么吗?

这是我如何在heroku和mongolab上运行流星"todos"应用程序.


Heroku上的流星

安装流星

curl install.meteor.com | /bin/sh
Run Code Online (Sandbox Code Playgroud)

将meteor添加到我们的路径中,以便我们可以从任何地方运行"meteor"命令.

将现有的meteor应用程序克隆到heroku文件夹中.

meteor create --example todos heroku
Run Code Online (Sandbox Code Playgroud)

切换到流星应用程序的文件夹.

cd heroku
Run Code Online (Sandbox Code Playgroud)

我添加了一个如下所示的package.json文件.

{
  "name": "myapp",
  "version": "0.0.1",
  "engines": {
    "node": "0.10.33",
    "npm":  "1.4.23"
  },
  "dependencies": {
    "fibers": "1.0.0"
  }
}
Run Code Online (Sandbox Code Playgroud)

切换到我们的主文件夹.我们想回到我们之前的位置.

pushd ~
Run Code Online (Sandbox Code Playgroud)

获取heroku客户端并安装它.

wget http://assets.heroku.com/heroku-client/heroku-client.tgz
tar -zxvf heroku-client.tgz 
export PATH=${PATH}:${HOME}/heroku-client/bin
Run Code Online (Sandbox Code Playgroud)

回到我们以前的位置.

popd
Run Code Online (Sandbox Code Playgroud)

登录heroku.

heroku login
Run Code Online (Sandbox Code Playgroud)

跳过这一部分,如果你已经使用HEROKU和GITHUB配置了SSH

将您的公共SSH密钥添加到heroku(如果您还没有这样做)

heroku keys:add ~/keys/heroku_public_key_ssh.txt
Run Code Online (Sandbox Code Playgroud)

(手动)确保公共SSH密钥也已添加到您的GitHub帐户.

如果您正在运行ssh-agent,请确保已加载匹配的私有SSH密钥

ssh-add ~/.ssh/id_rsa_heroku_github
Run Code Online (Sandbox Code Playgroud)

将我们的子文件夹设置为git存储库,我们将推送到heroku.用下面的"mikestodos"替换你自己的heroku app名称.

git init
heroku git:remote -a mikestodos
git add .
git commit -a -m "first deploy"
Run Code Online (Sandbox Code Playgroud)

创建一个heroku应用程序.我叫mikestodos.

heroku create mikestodos --stack cedar --region us --buildpack https://github.com/AdmitHub/meteor-buildpack-horse.git
Run Code Online (Sandbox Code Playgroud)

创建一个新的mongolab数据库,以及一个新的数据库用户.

将heroku的MONGO_URL设置为MongoLabs数据库URL.格式为:

heroku config:set MONGO_URL=mongodb://<my_mongouser>:<my_mongodbpassword>@<mymongoserver>:<mymongoport>/<mymongodbname>
Run Code Online (Sandbox Code Playgroud)

替换下面的自己的MongoLabs URL.

heroku config:set MONGO_URL=mongodb://mikestodos:<dbpassword>@ds051980.mongolab.com:51980/mikestodos
Run Code Online (Sandbox Code Playgroud)

为我们的heroku应用设置ROOT_URL.

heroku config:set ROOT_URL=http://mikestodos.herokuapp.com
Run Code Online (Sandbox Code Playgroud)

现在将我们的应用程序推送到heroku.

git push heroku master
Run Code Online (Sandbox Code Playgroud)