2011-11-15 9 views
5

Próbuję uruchomić Haskella na Heroku. Mam skompilowany binarny app i stworzył Procfile następująco:Serwuj używając własnego binarnego na Cedar, Heroku

web: ./app +RTS -N4 

Kiedy wciskam go Heroku, to mówi:

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

Teraz myślę, Cedar nie obsługuje toczenia plików binarnych. Czy istnieje sposób na wdrożenie?

Widziałem https://github.com/mwotton/heroku_haskell_demo. Wydaje się, że ten facet został rozmieszczony w Heroku, ale już nie działa. Heroku widzi Gemfile s i uważa, że ​​jest to aplikacja Ruby i uruchamia domyślny plik Procfile z Bundle install, który oczywiście nie działa.

Odpowiedz

4

Możesz wdrożyć swoją aplikację Haskell jako Node.js. Stos cedrowy rozpoznaje aplikację jako Node.js przez istnienie pliku package.json. Tak, należy utworzyć package.conf następująco:

package.json:

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

Dzięki! To dobrze działa. Ale nie rozumiem logiki stojącej za tym. Czy możesz wyjaśnić, jak to rozwiązuje problem? –

+0

Myślę, że rozumiem, kluczem jest oszukać Heroku w myśleniu, że jest to aplikacja Node.js, prawda? –

3

wiem, że już rozwiązany, ale miałem dość dużo ten sam problem z dodatkową przyczynę , więc może to pomóc innym:

Należy użyć heroku create --stack cedar zamiast heroku create.

+1

Tak, najpierw musiałem rozwiązać ten problem, co doprowadziło mnie do tego problemu "nieobsługiwanego przez cedr aplikacji". –

+1

W każdym razie, mam do czynienia z jeszcze jednym problemem, skompilowałem kod przy użyciu 'ghc --make -static app.hs', ale to nie działa. Udało się to raz i wdrożyłem go na http://miku-heroku.herokuapp.com, ale teraz nie działa. –

Powiązane problemy