Автор оригинала: Bharath Kallur.
Недавно я столкнулся с проблемой развертывания веб-приложения Python Flask в Heroku. Код приложения был размещен в GitLab.
Heroku поддерживает развертывание приложения из GitHub, Dropbox вместе с обычным гитом Heroku. Это было довольно некоторое время, так как я использовал Heroku. Мне было интересно, сможете ли я развернуть код непосредственно с моего репозитория GitLab вместо использования любого из упомянутых выше источников.
Я не смог найти никакой информации или документации вокруг развертывания приложений, размещенных в репозитории GitLab, чтобы Heroku Отказ Я немного просматривал GitLab, и оказалось, что кроме того, чтобы помочь тестировать и построить свой проект, Gitlab CI также может помочь Развертывание Вы прилагаете в свою хостинговую инфраструктуру. Теперь я был заинтригован.
Прежде чем я углубляюсь в то, как я развернул приложение, я бы хотел объяснить преимущества использования GitLab или Github, когда вы можете легко получить вещи с Git Heroku Git.
- Упрощенное обслуживание кода – С помощью хостинга для хранения кодов, таких как GitHub и Gitlab, обслуживание кода, легко.
- Настройка трубопроводов – С GitLab мы можем написать нашемую Ямл Файл и включите библиотеки, необходимые для запуска нашего приложения.
- Для лучшего понимания непрерывной интеграции и непрерывного развития (CI/CD) – Для начинающих эта настройка помогает вам понять рабочий процесс кодирования тестирования -> контроль версий -> Техническое обслуживание кода -> Развертывание приложений.
Вот шаги, необходимые для развертывания вашего приложения, размещенного в GitLab в Heroku. Шаги здесь предполагают, у вас уже есть хорошее понимание Python, колба, контроль версий, Gitlab и Heroku. Эта запись также полезна для того, кто только начинает. Я сохранил его как можно проще, чтобы добиться и бегать.
Загрузка проекта в GitLab
- Создайте виртуальную среду Python для нас для использования. Попасть в виртуальную среду.
- Создайте образец приложения Python Flask на вашем компьютере.
- Убедитесь, что все работает нормально.
- Запустите команду
PIP Freeze> требования.
TXT из главной папки приложения, чтобы выявить все требования для запуска вашего приложения. - Создайте Proffile, который используется Heroku, чтобы объявить, какие команды запускаются вашим приложением на платформе Heroku. Procfile обычно состоит из веб-сервера, используемого для запуска приложения. В нашем случае будем использовать Gunicorn, HTTP-сервер Python WSGI по умолчанию. Содержание вашего Proffile будет
Веб: Gunicorn <имя файла App.py>: <
Имя приложения> Где имя приложения обычно является «приложением». Поместите этот файл в основной папку приложения. - Теперь войдите в систему (или регистрация) в GitLab и создать проект. В тот момент, когда вы это делаете, вы получите стандартный набор инструкций о том, как «ссылку» свой код на вашей машине разработки в проекте GitLab. Просто следуйте командам, а после этого вы можете сделать Git Push или Git Thing to/из этого проекта. Это немного сложного шага, и ваше последнее утверждение должно выглядеть что-то вроде
Git Push -U Origin Master
Отказ После выполнения на обновлении страницы проекта на GitLab вы должны увидеть весь ваш код в GitLab.
Связывание Gitlab и Heroku
- Войдите в Heroku Web Portal и создать приложение. Дайте это хорошее имя и выбор времени выполнения.
- Теперь в папке My_app на вашей машине разработки создайте файл под названием «.gitlab-Ci.yaml» (обратите внимание на «.» В начале).
- Этот файл YAML будет иметь следующую структуру.
my_app_file_name: script: — apt-get update -qy — apt-get install -y python-dev python-pip — pip install -r requirements.txt — export MONGOHQ_URL=$MONGO_URL production: type: deploy script: — apt-get update -qy — apt-get install -y ruby-dev — gem install dpl — dpl — provider=heroku — app=task-mgmt-app — api-key=$HEROKU_SECRET_KEY only: — master
- Измените my_app_file_name на имя файла вашего приложения Flask. Вам нужно установить переменную heroku_secret_key в переменных проекта. Вы получите этот ключ в Heroku Dashboard Отказ Чтобы установить его в вашем проекте GitLab, перейдите в Настройки> CI/CD трубопроводы и искать Секретные переменные. При использовании этих переменных в YAML нам нужно добавить переменную со знаком «$». Это хорошая практика, чтобы не делиться секретными ключами с кем угодно, а также ограничивать доступ к ним в проекте.
- Вы почти там. Запустите команду
Git Добавить .gitlab-ci.yml
иGit Commit -M
иGit Push -U Origin Master
Отказ Вы увидите файл в репозитории GitLab сейчас. - На странице GitLab “My Dashboard” нажмите на Трубопроводы> Работа чтобы увидеть работу, которая начала бежать.
- Если вы используете базу данных в вашем приложении, вы можете связать его в приложение, разместив детали в файле .gitlab-Ci.yaml. Пожалуйста, проверьте здесь Например. Я использовал Mongdb в моем заявлении. Heroku предоставляет добавить набор бесплатных библиотек/приложений к вашему приложению. Есть MLAB Link для добавления MongoDB.
Ура! Теперь вы успешно интегрировали свой Gitlab с Heroku с конфигурацией CI/CD. Сделайте все изменения кода, которые вы хотите в своем репозитории, нажмите его в проект GitLab и посмотрите на начало работы каждый раз, когда есть код нажима. Для текущей настройки я использовал Gitlab Publics Punners здесь Отказ Вы можете настроить пользовательский бегун GitLab и установить соответствующую конфигурацию.