2011-11-15 21 views
5

Estoy tratando de ejecutar Haskell en Heroku. He compilado una binaria app y ha creado una Procfile de la siguiente manera:Sirve usando tu propio binario en Cedar, Heroku

web: ./app +RTS -N4 

Cuando empujo a Heroku, que dice:

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

ahora pienso, Cedar no soporta a rodar en sus binarios. ¿Hay alguna forma de implementarlo?

He visto https://github.com/mwotton/heroku_haskell_demo. Parece que este tipo se ha desplegado en Heroku, pero ya no funciona. Heroku ve el Gemfile y piensa que es una aplicación de Ruby y ejecuta su archivo de configuración predeterminado con Bundle install, que obviamente falla.

Respuesta

4

Puede implementar su aplicación Haskell como Node.js. Cedar stack reconoce una aplicación como Node.js por la existencia de un archivo package.json. Por lo tanto, se debe crear un package.conf de la siguiente manera:

package.json:

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

Gracias! Funciona bien. Pero no entiendo la lógica detrás de eso. ¿Puedes explicar cómo esto resuelve el problema? –

+0

Creo que lo entiendo, la clave es engañar a Heroku para que piense que es una aplicación Node.js, ¿verdad? –

3

sé que ya has resuelto, pero yo tenía más o menos el mismo problema con una causa adicional , por lo que esto podría ayudar a otros:

Asegúrese de utilizar heroku create --stack cedar en lugar de heroku create.

+1

Sí, tuve que abordar ese problema primero, lo que me llevó a este 'problema de aplicación sin soporte de cedro'. –

+1

De todas formas, estoy enfrentando un problema más, compilé el código usando 'ghc --make -static app.hs' pero parece que no funciona. Funcionó una vez y lo implementé en http://miku-heroku.herokuapp.com, pero no está funcionando ahora. –

Cuestiones relacionadas