Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Serve using your own binary on Cedar, Heroku

I am trying to run Haskell on Heroku. I have compiled a binary app and created a Procfile as follows:

web: ./app +RTS -N4

When I push it to Heroku, it says:

-----> Heroku receiving push
 !     Heroku push rejected, no Cedar-supported app detected

Now I think, Cedar does not support rolling in your binaries. Is there any way to deploy it?

I have seen https://github.com/mwotton/heroku_haskell_demo. This guy seems to have deployed to Heroku but, it no longer works. Heroku sees the Gemfiles and thinks that it is a Ruby app and runs its default Procfile with Bundle install which fails obviously.

like image 483
Abdulsattar Mohammed Avatar asked Nov 15 '11 07:11

Abdulsattar Mohammed


2 Answers

You can deploy your Haskell app as Node.js. Cedar stack recognizes an app as Node.js by the existence of a package.json file. So, you should create a package.conf as follows:

package.json:

{ "name": "project-name", "version": "0.0.1", "dependencies": {} }
like image 149
thimura Avatar answered Oct 11 '22 18:10

thimura


I know that you've already solved it, but I had pretty much the same problem with an additional cause, so this might help others:

Make sure to use heroku create --stack cedar rather than heroku create.

like image 39
yairchu Avatar answered Oct 11 '22 19:10

yairchu