问题
there seems to be a strange problem with the deployment of my app on heroku on cedar stack where my node process doesn't even get called
my Procfile is as follows:
web: node web.js
and my package.json file:
{
"name": "fuuzik",
"version": "0.0.1",
"dependencies": {
"express": "3.x",
"jade":"*",
"mime-magic":"*"
},
"engines": {
"node": "0.8.x",
"npm": "1.1.x"
}
}
So after i commit and push heroku detects it's a node app fine and builds my dependancies correctly and even says that it deployed .. yet the app is crashed immediately on deploy and heroku logs returns:
2012-08-29T08:52:14+00:00 heroku[api]: Deploy d9fdb17 by he610@doc.ic.ac.uk
2012-08-29T08:52:14+00:00 heroku[web.1]: State changed from crashed to starting
2012-08-29T08:52:14+00:00 heroku[slugc]: Slug compilation finished
2012-08-29T08:52:16+00:00 heroku[web.1]: Starting process with command `node web.js`
2012-08-29T08:52:16+00:00 app[web.1]: bash: node: command not found
2012-08-29T08:52:17+00:00 heroku[web.1]: Process exited with status 127
2012-08-29T08:52:17+00:00 heroku[web.1]: State changed from starting to crashed
foreman runs fine and there are a couple of .php files around the root directory (since I am porting some old code) but I am pretty sure that should be allowed by the logic of Procfiles
As requested here's the output of npm install locally:
--[/DEBUG]--
jade@0.27.2 node_modules/jade
├── commander@0.6.1
└── mkdirp@0.3.0
express@3.0.0rc3 node_modules/express
├── methods@0.0.1
├── range-parser@0.0.4
├── fresh@0.1.0
├── cookie@0.0.4
├── crc@0.2.0
├── commander@0.6.1
├── debug@0.7.0
├── mkdirp@0.3.3
├── send@0.0.3 (mime@1.2.6)
└── connect@2.4.3 (pause@0.0.1, bytes@0.1.0, qs@0.4.2, formidable@1.0.11)
mime-magic@0.3.0 node_modules/mime-magic
and here's the git log when i push (it's a bit big so i linked it):
http://pastebin.com/d424TBfR
Any help appreciated!
回答1:
Try deleting your Procfile.
Apparently, the Procfile indicates heroku to run the app using node main.js
but node is not a valid command since it is not included in the PATH varialbe, or similar.
By deleting the Procfile, heroku detects that the app is a meteor app and runs it using node's binary with the full path.
Also, remember the ROOT_URL
must be set beginning with http://
回答2:
These commands solved the issue
heroku buildpacks:set heroku/nodejs
git commit -am "empty" --allow-empty
git push heroku master
回答3:
Libmagic (required by mime-magic) is expecting a different version of libc then heroku provides. You will need to find an alternative library or compile it your self for heroku's version of libc.
来源:https://stackoverflow.com/questions/12174330/heroku-node-js-bash-node-command-not-found