2012-03-13 9 views
6

Chcę użyć Node.js jako serwera Share.js i Ruby dla interfejsu użytkownika. O ile wiem, Heroku zezwala tylko na jeden proces internetowy zwany "web". Czy ktoś ma jakieś doświadczenie próbujące zrobić coś takiego?Czy mogę używać dwóch języków w aplikacji Heroku?

+0

Myślę, że (nie jest to odpowiedź), że do wykonania tej czynności potrzebny będzie płatny oddzielny proces roboczy. – Phrogz

+0

Możesz mieć AFAIK tylko jeden proces sieciowy. Możesz mieć dodatkowe procesy robocze, ale najprawdopodobniej nie otrzymają prawidłowego portu do nasłuchu. –

Odpowiedz

8

Nie, Heroku wykrywa typ aplikacji po naciśnięciu kodu na Heroku i kompilacji ślimaka. Musiałbyś mieć je jako oddzielne aplikacje ze zdefiniowanym API pomiędzy tymi dwoma (nie zawsze tak źle).

AKTUALIZACJA: Możesz teraz układać stosy buildpacks, np. Ruby + PHP, abyś mógł obaj wykonać. Zobacz, jak korzystać z wielu buildpaków w tej samej aplikacji, pod numerem https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app.

+0

Nie zawsze jest to niemożliwe, proszę zobaczyć moją odpowiedź, zanim całkowicie się poddasz. – Ali

3

Jako zastrzeżenie technicznie można zainstalować dwa języki w jednej aplikacji - ale nie jestem pewien, czy będę je uruchamiać jednocześnie. Zrobiłem ten buildpack łączenia NodeJS i PHP (tak, że mogę uruchomić Grunt podczas kompilacji slug):

https://github.com/gcpantazis/heroku-buildpack-php-gruntjs

Wykrycie język jest zazwyczaj dość głupi; będzie szukał pliku wskazującego na język, tj. index.php lub plik rake. Musisz zmienić skrzynkę detekcyjną, aby twój kod przeminął.

Aktualizacja:

Jeszcze lepiej, należy rozważyć użycie https://github.com/ddollar/heroku-buildpack-multi; pozwoli ci sekwencyjnie instalować pakiety BuildPack. W zależności od aplikacji może być konieczne znalezienie pakietów budowania języka, które nie wymagają weryfikacji, tj. Sprawdzenie pliku package.json w aplikacji NodeJS.

1

Tak, jest to głównie możliwe, o ile nie robisz czegoś bardzo podstępnego. Kiedyś wdrożyłem aplikację Flask (Python), która korzystała z CoreNLP Stanforda, który jest napisany w Javie. Będziesz potrzebował heroku-buildpack-multi.

Po dodaniu pliku upewnij się, że zrobiłeś plik .buildbacks i dodasz wszystkie potrzebne buildpacki z Heroku github.

Dzięki temu Heroku wykrywa typ aplikacji i instaluje wszystkie niezbędne pakiety buildPack z pliku .buildpacks.

+0

Nie musisz już używać .buildpacks - jest to część platformy w dzisiejszych czasach, https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app –

Powiązane problemy