2011-11-15 32 views
5

我想在Heroku上运行Haskell。我已编译的二进制app,并创造了Procfile如下:在Cedar上使用自己的二进制文件,Heroku

web: ./app +RTS -N4 

当我把它推到Heroku的,它说:

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

现在我认为,雪松不支持在二进制文件滚动。有什么办法可以部署它吗?

我看过https://github.com/mwotton/heroku_haskell_demo。这个人似乎已经部署到Heroku,但它不再有效。 Heroku看到Gemfile s,并认为它是一个Ruby应用程序,并运行其默认的Procfile与Bundle install,显然失败。

回答

4

您可以将您的Haskell应用程序部署为Node.js. Cedar stack通过package.json文件的存在将应用程序识别为Node.js。 所以,你应该按如下方式创建一个package.conf:

的package.json:

{ "name": "project-name", "version": "0.0.1", "dependencies": {} } 
+1

谢谢!它运作良好。但我不明白它背后的逻辑。你能解释一下如何解决这个问题吗? –

+0

我想我明白了,关键是欺骗Heroku,认为它是一个Node.js应用程序,对吧? –

3

我知道你已经解决了这个问题,但我有一个额外的原因有几乎同样的问题,所以这可能有助于其他人:

请确保使用heroku create --stack cedar而不是heroku create

+1

是的,我必须首先解决这个问题,这导致我没有雪松支持的应用程序问题。 –

+1

无论如何,我还面临另外一个问题,我使用'ghc --make -static app.hs'编译了代码,但它似乎不起作用。它曾经工作过一次,我把它部署到http://miku-heroku.herokuapp.com,但现在不工作。 –