2011-11-15 10 views
5

पर अपनी खुद की बाइनरी का उपयोग करने की सेवा करें मैं हेरोकू पर हास्केल चलाने की कोशिश कर रहा हूं। मैं एक द्विआधारी app संकलित और इस प्रकार एक Procfile बनाया है:सीडर, हेरोकू

web: ./app +RTS -N4 

जब मैंने इसे Heroku करने के लिए धक्का है, यह कहते हैं:

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

अब मुझे लगता है कि, देवदार अपनी बाइनरी में रोलिंग समर्थन नहीं करता। क्या इसे तैनात करने का कोई तरीका है?

मैंने https://github.com/mwotton/heroku_haskell_demo देखा है। ऐसा लगता है कि यह लड़का हरोकू में तैनात है, लेकिन यह अब काम नहीं करता है। हेरोोकू Gemfile एस देखता है और सोचता है कि यह एक रूबी ऐप है और Bundle install के साथ इसकी डिफ़ॉल्ट प्रोफाइल चलाता है जो स्पष्ट रूप से विफल रहता है।

उत्तर

4

आप अपने हास्केल ऐप को Node.js. के रूप में तैनात कर सकते हैं। सीडर स्टैक पैकेज.जेसन फ़ाइल के अस्तित्व से एक ऐप को Node.js के रूप में पहचानता है। तो, आप एक package.conf इस प्रकार बनाना चाहिए:

package.json:

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

धन्यवाद! यह अच्छा काम करता है। लेकिन मैं इसके पीछे तर्क समझ में नहीं आता। क्या आप समझ सकते हैं कि यह समस्या कैसे हल करता है? –

+0

मुझे लगता है कि मुझे यह मिल गया है, कुंजी यह सोचने में है कि यह एक नोड.जेएस ऐप है, है ना? –

3

मुझे पता है कि आप पहले से ही इसका समाधान कर लिया है, लेकिन मैं एक अतिरिक्त कारण के साथ बहुत ज्यादा एक ही समस्या थी , इसलिए यह दूसरों की मदद कर सकता है:

heroku create के बजाय heroku create --stack cedar का उपयोग करना सुनिश्चित करें।

+1

हाँ, मुझे पहले उस समस्या से निपटना पड़ा, जिसने मुझे 'सीडर-समर्थित ऐप समस्या' का नेतृत्व किया। –

+1

वैसे भी, मुझे एक और समस्या का सामना करना पड़ रहा है, मैंने 'ghc --make -static app.hs' का उपयोग करके कोड संकलित किया लेकिन यह काम नहीं कर रहा है। यह एक बार काम करता था और मैंने इसे http://miku-heroku.herokuapp.com पर तैनात किया, लेकिन अब यह काम नहीं कर रहा है। –

संबंधित मुद्दे