2011-11-15 18 views
5

üzerinde kendi ikili kodunuzu kullanarak hizmet verin Haskell'i Heroku'da çalıştırmaya çalışıyorum. Ben bir ikili app derlenmiş ve aşağıdaki gibi bir Procfile oluşturduk:Sedir, Heroku

web: ./app +RTS -N4 

Ben Heroku için itin, bu diyor ki:

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

Şimdi sanırım, Sedir ikili dosyalarınıza haddeleme desteklemez. Dağıtmanın herhangi bir yolu var mı?

https://github.com/mwotton/heroku_haskell_demo'u gördüm. Bu adam Heroku'ya konuşlandırılmış gibi görünüyor, ama artık işe yaramıyor. Heroku, Gemfile s'yi görür ve bir Ruby uygulaması olduğunu ve varsayılan Procfile'ı Bundle install ile çalıştırarak açık bir şekilde başarısız olduğunu düşünür.

cevap

4

Haskell uygulamanızı Node.js. olarak dağıtabilirsiniz. Sedir yığını, bir package.json dosyasının varlığıyla bir uygulamayı Node.js olarak tanır. aşağıdaki gibi Yani, bir package.conf oluşturmalısınız:

package.json:

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

Teşekkürler! İyi çalışıyor. Ama arkasındaki mantığı anlamıyorum. Bunun sorunu nasıl çözdüğünü açıklayabilir misiniz? –

+0

Sanırım anladım, anahtar Heroku'nun bir Node.js uygulaması olduğunu düşünerek aldatmaktır. –

3

Ben zaten bunu çözdük olduğunu biliyorum ama ek bir nedene sahip hemen hemen aynı problem vardı Bu nedenle başkalarına yardımcı olabilir:

heroku create yerine heroku create --stack cedar kullandığınızdan emin olun.

+1

Evet, öncelikle bu sorunu çözmem gerekiyordu, bu da beni 'sedir destekli uygulama sorunu yok' durumuna getirdi. –

+1

Her neyse, bir daha sorunla karşı karşıyayım, 'ghc --make -static app.hs' kullanarak kodu derledim ama işe yaramıyor. Bir kez çalıştı ve ben http://miku-heroku.herokuapp.com için konuştum, ama şimdi çalışmıyor. –