Деплой (deploy) – это процесс публикации (развёртывания) вашего приложения на сервере для того, чтобы оно было доступно в интернете или другой сети.
В этой статье мы рассмотрим туториалы по развертыванию Flask- и Django-приложений на сервере от Timeweb Cloud и облачной платформе PythonAnywhere.
В качестве примера мы будем использовать простейшее приложение, которое выводит на экран приветствие “Hello, world!”
Деплой приложения на сервере
Когда вы разворачиваете приложения на облачном сервере, кроме непосредственного запуска контейнера может потребоваться настройка реверс-прокси (например nginx) и SSL. Docker — инструмент, который упрощает создание, развертывание и запуск приложений с использованием контейнеров.
Контейнер docker — это набор зависимостей и кода, организованный в виде программного обеспечения, которое позволяет приложениям быстро и эффективно работать в различных вычислительных средах.
В первую очередь мы устаналиваем Docker с официального сайта.
Приложение Flask
Опубликуем приложение Flask.
Настройка Dockerfile
Создаём файл и называем его Dockerfile. Добавим в него код:
Создание образа контейнера
Создадим образ для только что созданного контейнера:
Запуск контейнера
Для запуска контейнера выполняем код:
-d – для запуска контейнера в автономном режиме
-p – для указания порта, который будет открыт
Запустив localhost:5000 в браузере, увидим приложение.
Приложение Django
Деплой Django-приложения на Docker мало чем отличается от деплоя Flask-приложения.
Создадим виртуальное окружение и Dockerfile, в который добавим код:
Создадим файл .dockerignore, в котором будет находиться название нашего виртуального окружения:
Создадим образ контейнера и запустим контейнер, используя команды build и run:
Запустив в браузере http://localhost:5000/, увидим приложение.
Облачные серверы
по всему миру с почасовой оплатой.
Деплой на облачной платформе PythonAnywhere
При использовании облачных сервисов, таких как PythonAnywhere или Heroku, вы сможете писать проекты прямо в браузере. Но для такой работы вам понадобится установка и подготовка Git-репозитория.
Установка Git и создание Git-репозитория
Вначале необходимо подготовить проект для Github. В своей учетной записи Github создайте новый репозиторий во вкладке Repositories. Назовите его по своему усмотрению и нажмите Create repository.
Дальше вам нужно подключить проект к Github с помощью Git. Установить Git можно с официального сайта git-scm.com.
Создадим локальный репозиторий на нашем компьютере. Внутри рабочего каталога вашего проекта (там, где находится manage.py) в консоли запускаем команду:
Она инициализирует новый репозиторий git для вашего проекта.
Создание файла .gitignore
Необходимо создать файл в корневом каталоге проекта с именем .gitignore, который используется для указания git, какие файлы и папки игнорировать. Откройте редактор и внесите:
Мы указываем Git игнорировать базу данных разработки, статические файлы и медиафайлы.
Теперь создаём requirements.txt. В нем перечислены все зависимости, необходимые проекту для правильной работы.
Подключение git-репозитория к Github
Теперь нужно связать локальный репозиторий с репозиторием на GitHub. Наберите в консоли следующую команду:
Внутри командной строки будет предложено ввести имя пользователя и пароль. С недавнего времени вместо пароля вводится персональный токен доступа. Для его получения, необходимо:
- В GitHub перейти в Settings -> Developer Settings -> Personal access tokens и нажать на Generate new token
- Нажать repo. Токен будет применим для всех указанных действий в ваших репозиториях.
- Нажать Generate Token.
Теперь, при обновлении браузера, вы увидите весь код со своего компьютера в репозитории Github.
Публикация на облачном сервисе
Для использования созданного репозитория на PythonAnywhere необходимо создать аккаунт уровня «Beginner». После этого на главной странице во вкладке Consoles запускаем Bash-консоль. Чтобы опубликовать приложение на облачном сервисе, понадобится помощь программы, которая сделает это автоматически.
Внутри bash-консоли запускаем строку для установки программы:
Теперь активируем только что установленную утилиту:
Приложение доступно для использования в интернете!
Разверните свое Python-приложение
в облаке Timeweb Cloud
477 ₽/мес
657 ₽/мес
Заключение
Мы рассмотрели, как выполнить деплой Python-приложения на облачной платформе PythonAnywhere и сервере от Timeweb Cloud.
Кстати, в своем официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.
