🚀
Вопрос из курса: Как оставить вычисления на ночьДля тех, кто пока не сталкивался с запуском стратегий или другого кода не локально, рассказываем направления мысли :)
👍🏻
Запуск Python-скрипта на сервере через nohupЧтобы запустить Python-скрипт на сервере в фоновом режиме, используйте команду
nohup:
1. Арендуйте сервер у провайдера, например,
https://vdsina.ru или
https://www.hetzner.com. Подключитесь к серверу по SSH.
2. Перейдите в директорию с вашим Python-скриптом:
# для переноса кода на сервер используйте scp, rsync или просто перетащите скрипты через плагин Remote - SSH для VSCode или аналогичный инструмент
cd /path/to/your/script
3. Запустите скрипт с помощью nohup:
nohup python script.py &
Флаг
& отправляет процесс в фоновый режим.
4. Выйдите из SSH-сессии. Скрипт будет продолжать выполняться в фоновом режиме даже после выхода. Рекомендуем записать pid процесса, чтобы в случае чего его оставить:
kill -9 pid_процесса.
5. Чтобы проверить вывод скрипта, посмотрите файл
nohup.out в директории со скриптом:
cat nohup.out
🤲🏻
Развертывание приложений через DockerЧтобы автоматизировать процесс установки зависимостей и не собирать сервер заново, используют докер. Для развертывания приложений с использованием Docker выполните следующие шаги:
1. Создайте
Dockerfile в корне вашего проекта.
2. Соберите Docker-образ:
docker build -t your-app .
3. Запустите контейнер на основе собранного образа:
docker run -d -p 8000:8000 your-app
Флаг -d запускает контейнер в фоновом режиме, а -p публикует порт контейнера на хосте, если нужно обращаться к приложению из сети.
4. Ваше приложение будет доступно по адресу
http://server-ip:8000🤝🏻
Развертывание через CI/CDЧтобы каждый раз не копировать код на сервер и контролировать версии, используют CI/CD. Для автоматизации процесса развертывания с помощью CI/CD используйте инструменты вроде GitLab CI/CD или GitHub Actions:
1. Настройте файл
.gitlab-ci.yml или
.github/workflows/ci.yml в вашем репозитории.
2. Определите этапы сборки, тестирования и развертывания в конфигурационном файле.
3. При каждом push или merge в определенную ветку CI/CD-инструмент автоматически запустит пайплайн.
4. На этапе развертывания CI/CD-инструмент может:
- Собрать Docker-образ
- Отправить образ в реестр
- Подключиться к серверу по SSH
- Загрузить образ и запустить контейнер
Использование CI/CD позволяет автоматизировать рутинные задачи, ускорить процесс разработки и повысить надежность развертываний [1][3][4].
👨🏻🏫
Полезные ссылки[1] CI/CD - что это: основы непрерывной интеграции и ...
https://blog.skillfactory.ru/glossary/ci-cd/[2] Docker: как создавать образы контейнеров и развертывать ...
https://habr.com/ru/articles/776188/[3] Как создать и развивать процессы CI/CD в команде / Хабр - Habr
https://habr.com/ru/companies/otus/articles/741278/[4] Что такое CI/CD? Разбираемся с непрерывной интеграцией и ...
https://habr.com/ru/companies/otus/articles/515078/[5] Строим домашний CI/CD при помощи GitHub Actions и Python
https://habr.com/ru/articles/476368/[6] Удобный CI/CD доступен каждому / Хабр - Habr
https://habr.com/ru/articles/820451/[7] 20+ лучших инструментов и программного обеспечения CI/CD ...
https://visuresolutions.com/ru/alm-guide/best-ci-cd-tools-for-2023/[8] Настройка CI/CD для Gitlab-репозитория: схемы и гайд по ...
https://habr.com/ru/articles/764568/Quant Researcher