Могу ли я использовать два языка в приложении Heroku?

119
15

Я хочу использовать Node.js в качестве сервера Share.js и Ruby для интерфейса. Насколько я знаю, Heroku разрешает только один веб-процесс, называемый "web". У кого-нибудь есть опыт, пытающийся сделать что-то вроде этого?

спросил(а) 2021-01-19T15:58:07+03:00 6 месяцев, 2 недели назад
1
Решение
133

Нет, Heroku обнаруживает тип приложения, когда вы нажимаете свой код на Heroku, и он компилирует слизню. Вам нужно будет иметь их как отдельные приложения с определенным API между ними (не всегда плохо)

UPDATE: вы можете "складывать" buildpacks в наши дни, например Ruby + PHP, чтобы вы могли выполнить оба. См. https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app для использования нескольких сборных пакетов в одном приложении.

ответил(а) 2021-01-19T15:58:07+03:00 6 месяцев, 2 недели назад
90

Как предостережение, вы технически можете установить два языка в одном приложении, но я не уверен, что они будут запускать их одновременно. Я сделал этот buildpack для объединения NodeJS и PHP (чтобы я мог запускать Grunt во время компиляции):


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


Обнаружение языка обычно довольно глупые; он будет искать файл, указывающий на язык, т.е. index.php или rakefile. Вам нужно будет изменить детектирующий ящик, чтобы ваш код прошел.

Update:


Еще лучше подумайте, используя https://github.com/ddollar/heroku-buildpack-multi; это позволит вам последовательно устанавливать buildpacks. В зависимости от вашего приложения вам может потребоваться найти языковые пакеты, которые не имеют этапов проверки, т.е. Проверка файла package.json в приложении NodeJS.

ответил(а) 2021-01-19T15:58:07+03:00 6 месяцев, 2 недели назад
63

Да, в основном я могу полагать, если вы не делаете что-то очень сложное. Я однажды развернул приложение Flask (Python), которое использовало Stanford CoreNLP - все это написано на Java. Вам понадобится heroku-buildpack-multi.


После добавления этого файла обязательно создайте файл .buildbacks и добавьте все сборки, которые вам понадобятся из Heroku github.


Это обходит Heroku, обнаруживая ваш тип приложения и устанавливает все необходимые сборки из файла .buildpacks.

ответил(а) 2021-01-19T15:58:07+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема