2011-11-15 9 views
5

Sto cercando di eseguire Haskell su Heroku. Ho compilato un binario app e ha creato un Procfile come segue:Servire utilizzando il proprio file binario su Cedar, Heroku

web: ./app +RTS -N4 

Quando mi spingo a Heroku, si dice:

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

ora penso, Cedar non supporta a rotazione i binari. C'è un modo per distribuirlo?

Ho visto https://github.com/mwotton/heroku_haskell_demo. Sembra che questo tizio si sia schierato con Heroku, ma non funziona più. Heroku vede il Gemfile s e pensa che si tratta di un'app Ruby ed esegue il suo Procfile predefinito con Bundle install che fallisce ovviamente.

risposta

4

È possibile distribuire l'app Haskell come Node.js. Cedar stack riconosce un'applicazione come Node.js dall'esistenza di un file package.json. Quindi, è necessario creare un package.conf come segue:

package.json:

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

Grazie! Funziona bene. Ma non capisco la logica dietro. Puoi spiegare come questo risolve il problema? –

+0

Penso di averlo capito, la chiave è ingannare Heroku pensando che si tratti di un'app Node.js, giusto? –

3

So che hai già risolto, ma ho avuto più o meno lo stesso problema con un'ulteriore causa , quindi questo potrebbe aiutare gli altri:

Assicurarsi di utilizzare heroku create --stack cedar anziché heroku create.

+1

Sì, ho dovuto affrontare prima questo problema, che mi ha portato a questo "problema con l'app senza cedro". –

+1

Comunque, sto affrontando un altro problema, ho compilato il codice usando 'ghc --make -static app.hs' ma non sembra funzionare. Ha funzionato una volta e l'ho distribuito su http://miku-heroku.herokuapp.com, ma non funziona ora. –

Problemi correlati