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

时间:2014-11-11 15:03:56

标签: mongodb heroku deployment meteor

我尝试使用以下buildpack在heroku上部署meteor.js应用程序(v 1.0):
https://github.com/AdmitHub/meteor-buildpack-horse
并按照本教程进行操作:
http://www.growthux.com/ux-html-css-js-growth-hack/installing-meteor-on-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崩溃" 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 =

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

1 个答案:

答案 0 :(得分:5)

我有一个类似的问题,结果发现我已经离开了" http://"来自ROOT_URL。

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

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


Heroku上的流星

安装meteor

curl install.meteor.com | /bin/sh

将meteor添加到我们的路径中,这样我们就可以运行" meteor"来自任何地方的命令。

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

meteor create --example todos heroku

切换到meteor app的文件夹。

cd heroku

我添加了一个类似于以下内容的package.json文件。

{
  "name": "myapp",
  "version": "0.0.1",
  "engines": {
    "node": "0.10.33",
    "npm":  "1.4.23"
  },
  "dependencies": {
    "fibers": "1.0.0"
  }
}

更改为我们的主文件夹。我们想回到我们之前的位置。

pushd ~

获取heroku客户端并安装它。

wget http://assets.heroku.com/heroku-client/heroku-client.tgz
tar -zxvf heroku-client.tgz 
export PATH=${PATH}:${HOME}/heroku-client/bin

返回我们之前的位置。

popd

登录heroku。

heroku login
  

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

     

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

heroku keys:add ~/keys/heroku_public_key_ssh.txt
     

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

     

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

ssh-add ~/.ssh/id_rsa_heroku_github

将我们的子文件夹设置为git存储库,我们将推送到heroku。将您自己的heroku应用程序名称替换为" mikestodos"下方。

git init
heroku git:remote -a mikestodos
git add .
git commit -a -m "first deploy"

创建一个heroku应用。我叫mikestodos。

heroku create mikestodos --stack cedar --region us --buildpack https://github.com/AdmitHub/meteor-buildpack-horse.git

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

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

heroku config:set MONGO_URL=mongodb://<my_mongouser>:<my_mongodbpassword>@<mymongoserver>:<mymongoport>/<mymongodbname>

在下面替换您自己的MongoLabs网址。

heroku config:set MONGO_URL=mongodb://mikestodos:<dbpassword>@ds051980.mongolab.com:51980/mikestodos

为我们的heroku应用设置ROOT_URL。

heroku config:set ROOT_URL=http://mikestodos.herokuapp.com

现在将我们的应用推送到heroku。

git push heroku master