Heroku procfile "Нет такого типа процесса в сети, определенный в Procfile"
Это первый раз, когда я использовал Heroku
, и тот факт, что я не могу найти кого-либо в Google с аналогичной ошибкой, означает, что я, вероятно, делаю что-то способ неправильно
Я следую базовому руководству по установке Heroku здесь, чтобы получить приложение NodeJS, развернутое в Интернете. Я развернута и пытаюсь проверить свой dynos
на:
heroku ps:scale web=1
Однако, когда я это делаю, я получаю ошибку:
Scaling web dynos... failed
! No such process type web defined in Procfile.
Когда я запускаю heroku ps
, я ничего не получаю.
В моем корневом каталоге приложения у меня есть файл с именем Procfile
(без расширения), который содержит:
web: node app.js
Приложение запускается локально без каких-либо проблем (используя foreman start
).
Вопрос, почему это происходит, как мне его исправить, должен ли я даже заботиться?
Ответы
Ответ 1
Процессы, которые будут выполняться на Heroku, определяются в простом текстовом файле: Procfile
Профиль содержит строку, определяющую, как будет работать каждый из процессов в вашем приложении. Это будет специфичным для языка, и примеры можно увидеть в статье Heroku Devcenter Procfile
Обратите внимание, что файл Procfile должен быть указан точно, а первая буква заглавны всем другим нижним регистром. Для файла Procfile нет расширения файла. Этот файл Procfile должен быть помещен в корень вашего проекта и передан в локальный репозиторий git перед выполнением мастера git push heroku.
Если вы неправильно напечатали имя файла после его добавления в git, вы можете переименовать его с помощью git с помощью команды
git mv ProcFile Procfile
Переименованный файл будет поставлен таким образом, чтобы вы могли зафиксировать измененный файл командой
git commit -m "corrected name of Procfile"
Ответ 2
Я нашел решение самостоятельно, отсюда: fooobar.com/questions/291361/...
У меня была такая же проблема, и я только сейчас обнаружил, что не так. я первый случайно вызвал файл ProcFile вместо Procfile. Просто переименование этого файла не удалось получить с помощью git. Мне нужно было сделать git rm Сначала запустите ProcFile -f, а затем добавьте новый (правильно названный) Procfile. После что он был правильно настроен на git и правильно поднят Heroku.
Ответ 3
У меня была сама проблема, но в моем случае у меня отсутствовало пробел между web:
и стартовой командой в Procfile.
Например, у меня было это неправильно:
web:gunicorn run:app
Исправлено, добавив пробел после двоеточия:
web: gunicorn run:app
Ответ 4
Я предполагаю, что вы никогда не делали git push heroku master
- то есть, Heroku никогда не видел ваш код.