Я пытаюсь выполнить автоматическое развертывание приложения Python Flask с помощью Jenkins, а затем запустить его с помощью команды оболочки на сервере Raspberry Pi.
Вот некоторая справочная информация ,
Перед использованием Jenkins мой процесс развертывания и выполнения был описан ниже:
- FTP в каталог, где находятся мои Python сценарии и Python venv
- Замена Flask прикладных сценариев с использованием FTP
- Активация виртуальной среды до Python (3.5) через терминал на Raspberry Pi ("./venv/bin/activate")
- Запустите myFlaskApp.py, выполнив «python myFlaskApp.py» в терминале
Теперь я интегрировал Jenkins с процессом развертывания / выполнения, описанным ниже:
- Изменение кода отправлено на github
- Jenkins автоматически извлекает файлы из github
- Jenkins развертывает файлы в указанных каталогах, выполняя команды оболочки
- Jenkins затем активирует виртуальную среду и un myFlaskApp.py путем установки скрипта. sh в терминале оболочки.
Теперь проблема , с которой я столкнулся, находится на шаге 4, потому что приложение Flask должен всегда быть живым, мой Jenkins никогда не будет «завершен успешно», он всегда будет в состоянии загрузки, так как приложение Flask работает на терминале оболочки, который использует Jenkins.
Теперь мой вопрос : Какой правильный подход я должен использовать, чтобы активировать myFlaskApp.py с Jenkins после развертывания файлов, не вызывая его "блокировки" процессом сборки?
Я прочитал о Docker, SubShell и Linux утилите "Экран". Будет ли какой-либо из этих инструментов полезен мне в моей ситуации прямо сейчас, и какой подход я должен выбрать?