Решение ошибки H14 в Heroku: настройка gunicorn и web-процессов
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Чтобы исправить ошибку H14 на Heroku, убедитесь в правильности Procfile
. Этот файл показывает Heroku, как надо запустить ваше приложение. В том числе, Procfile
может содержать следующую строчку:
web: gunicorn yourApp.wsgi
Замените gunicorn yourApp.wsgi
кратким обозначением вашего веб-сервера и точки входа. Затем отмасштабируйте приложение следующей командой:
heroku ps:scale web=1
Это действие задействует веб-динамы, и ваше приложение начнёт функционировать.
Особенности Procfile: регистр и формат
Проверьте, корректно ли назван Procfile. Название файла должно начинаться с заглавной буквы 'P' и соответствовать формату:
<тип процесса>: <команда>
Установка gunicorn в виртуальной среде
Для Python-приложений gunicorn должен быть установлен в виртуальной среде Heroku. Проверьте это в requirements.txt
или Pipfile
.
Перезапуск через пустой коммит
Сделайте пустой коммит и деплойте приложение заново:
git commit --allow-empty -m "Перезапуск приложения"
git push heroku master
Осмотр изменений аккаунта
Любые недавние изменения в настройках Heroku могли повлиять на доступность динамов. Проверьте, какое количество динамов доступно в вашем тарифном плане.
Визуализация
Ошибка H14 в Heroku подобна ситуации, когда на вокзале нет поездов:
Станция 🚉: _(Ваше приложение)_
Ожидается: 🚂💨 _Работающие веб-процессы_
Фактическая ситуация: 🚧 _Веб-процессы отсутствуют_
Решение: Верните "поезда" (веб-процессы) обратно на "станцию" при помощи Heroku CLI:
heroku ps:scale web=1
Результат: 🚉➡️🚂💨 _Веб-процесс работает_
Исследование логов
Посмотрите логи Heroku:
heroku logs --tail
Обращайте внимание на ошибки при запуске. Они могут стать ключами к пониманию причин проблем.
Компатибельность зависимостей
Убедитесь, что Flask, passlib, SQLAlchemy, Werkzeug, gunicorn и gevent совместимы между собой, чтобы избежать ошибок при запуске сервера.
Управление билдпаками
Для точной настройки среды Heroku, возможно, придется сбросить билдпаки:
heroku buildpacks:clear
heroku buildpacks:add heroku/python
Полезные материалы
- Коды ошибок Heroku | Heroku Dev Center — Описание ошибки H14 и других.
- Масштабирование динамов | Heroku Dev Center — Подробное руководство по масштабированию веб-процессов.
- Procfile | Heroku Dev Center — Советы по работе с Procfile.
- Команды Heroku CLI | Heroku Dev Center — Список команд для работы в Heroku.
- Начинаем работу с Python на Heroku | Heroku Dev Center — Полезный ресурс для начинающих работу с Python на Heroku.
- Деплой кода через Git | Heroku Dev Center — Руководство по работе с Git в среде Heroku.
- Билдпаки | Heroku Dev Center — Описание билдпаков Heroku для различных языков программирования.