2011-11-15 28 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,但現在不工作。 –