После многочасового рыскания в Интернете и поиска моего первого развертывания Heroku Flask я подумал, что было бы здорово собрать все в одном месте; войти в этот блог!

Heroku оказался феноменальным активом, и его довольно легко использовать (то есть, если вы знаете нюансы). Для тех, кто не знает, Heroku — это платформа как услуга (PaaS), которая позволяет разработчикам тратить меньше времени на установку зависимостей и настройку сервера, если она используется правильно.

Итак, без лишних слов, приступим.

Что вам понадобится

Вероятно, самой запутанной частью развертывания моего приложения было обнаружение всех необходимых файлов вместе с их назначением. Есть три основных файла, которые необходимы для бесперебойной работы Heroku: файл requirements.txt, файл runtime.txt, и Procfile. Обратите внимание, что их имена важны и должны быть скопированы точно с учетом регистра.

*Все эти файлы должны быть помещены в корневой каталог вашего приложения.

Файл требований

Файл requirements.txt сообщает Heroku, какие зависимости необходимо установить для успешного запуска вашего приложения. Это просто означает, что это список библиотек, которые использует ваше приложение, вместе с версией библиотеки (например, 1.0.3). Чтобы создать правильный файл требований, просто выполните следующую команду в своем терминале.

$ pip list > requirements.txt

Эта команда напечатает все содержимое команды pip list в файл requirements.txt, что упрощает работу по копированию/вставке.

Файл времени выполнения

Файл runtime.txt представляет собой простой однострочный файл. Все, что он делает, это сообщает Heroku, какую версию Python запускать. Чтобы узнать, какую версию Python вы используете в данный момент, выполните следующую команду.

$ python -V

Ваш файл времени выполнения должен выглядеть так:

python-3.7.0

Обратите внимание, что в файле не должно быть никаких пробелов, и вы должны заменить версию Python на любую версию, которую вы используете на своем локальном компьютере.

Procfile

Procfile означает «файл процесса» и сообщает Heroku, какой процесс выполнять при попытке запустить ваше приложение. Это снова должно быть простым однострочником и выглядеть так:

web: python your_app_name.py

Это просто указывает вашему серверу Heroku, что при попытке запустить веб-приложение он должен выполнить команду «python your_app_name.py». Обязательно замените файл Python на имя вашего приложения.

Собираем все вместе

Теперь, когда мы собрали все эти файлы, развертывание должно быть относительно простым.

Сначала мы должны установить Heroku на нашу машину. Для этого (если вы разрабатываете Ubuntu 16+ или дистрибутив на основе Ubuntu) выполните команду:

$ sudo snap install --classic heroku

Если вы не используете Ubuntu, перейдите по этой ссылке, чтобы получить инструкции по установке.

Затем выполните следующую команду:

$ heroku create <app name>

Эта команда создает приложение с именем приложения. Если имя приложения оставить пустым, ему будет присвоено случайное имя.

Все, что осталось сделать, это

$ git push heroku master

Который установит все зависимости из файла requirements.txt на удаленный сервер, а затем, наконец:

$ heroku ps:scale web=1

Это гарантирует, что по крайней мере один экземпляр вашего приложения запущен и работает. Полезный совет: вы можете открыть свое приложение в браузере по умолчанию, выполнив команду:

$ heroku open

Я надеюсь, что этот краткий пост поможет облегчить вам большую часть времени отладки, я знаю, что мне жаль, что кто-то не сделал это для меня!

Не стесняйтесь проверить мой LinkedIn и личный веб-сайт, указанные ниже.