Обзор
Веб-сервер
Утилиты для баз данных
Брокеры сообщений
Low-code
Менеджеры паролей и секретов

Запуск приложения Python с загрузкой по FTP, SFTP на Dockhost

В данной статье мы рассмотрим загрузку и запуск приложения, написанного на Python, на платформе Dockhost. Загрузка приложения будет происходить через SFTP на сетевой диск, с последующим запуском кода в контейнере с Python.

В качестве примера, возьмём небольшого Telegram-бота, который отвечает на запросы пользователя фразой равной его запросу (echobot). Исходный код данного Telegram-бота можно посмотреть здесь: example-python-telegram-bot.

Telegram-бот, для примера, будет иметь следующий набор файлов:

Если у Вас нет файла с зависимостями requirements.txt, то Вы можете его создать с помощью команды:

pip freeze >> requirements.txt

Создание сетевого диска

Для хранения файлов приложения необходимо создать сетевой диск, для этого перейдите в раздел «Сетевые диски» и создайте новый сетевой диск.

Далее нажмите на кнопку «Применить» и дождитесь завершения процесса создания сетевого диска.

Включение доступа к сетевому диску по SFTP

После того как сетевой диск будет создан, необходимо включить доступ к нему по SFTP. Для включения доступа к диску по SFTP перейдите в параметры диска, для этого нажмите на имя диска или на кнопку «Управлять», далее перейдите в раздел «Настройки SFTP» и нажмите на кнопку «Включить доступ к сетевому диску по SFTP».

В примере мы будем использовать доступ через SFTP, но Вы можете использовать как SFTP, так и FTP.

При включении SFTP необходимо выставить значения для UID - 0 и для GID - 0. Это необходимо сделать, так как в дальнейшем код будет запускаться в контейнере python, который в свою очередь запускается от root пользователя (uid 0, gid 0).

Загрузка файлов приложения

Для загрузки файлов необходимо использовать FileZilla, но Вы можете воспользоваться любым клиентом или встроенными средствами IDE.

Добавьте новое SFTP-соединение, указав данные из раздела «Настройки SFTP».

Далее загрузите файлы приложения в директорию /upload.

Запуск приложения

Как только файлы приложения загружены через SFTP (или FTP), необходимо запустить контейнер, для этого перейдите в раздел «Контейнеры» и добавьте контейнер.

Данный контейнер имеет следующие параметры:

  • Образ python:3.12
  • Сетевой диск, на который были загружены файлы проекта, смонтирован в папку /app
  • В качестве точки входа (entrypoint) используется /bin/sh
  • Добавлен аргумент для команды -c
  • Основная команда cd /app && pip install --no-cache-dir --upgrade -r requirements.txt && python main.py, которая при запуске контейнера переходит в папку /app и последовательно запускает pip install --no-cache-dir --upgrade -r requirements.txt и python main.py

При необходимости Вы можете указать любой другой образ для контейнера, например, доступный на https://hub.docker.com/_/python.

После запуска контейнера в логах будет отображена запись об установке зависимостей и успешном старте приложения.

Теперь приложение полностью настроено и запущено, для обновления приложения необходимо загрузить на сетевой диск новый код приложения и перезапустить контейнер.

Если у Вас есть Git-репозиторий, то мы рекомендуем подключить деплой Вашего приложения через механизм Push-to-Deploy, о том, как подключить Git-репозиторий Вы можете прочитать в разделе Подключение репозитория Git.

В этой статье
Создание сетевого диска
Включение доступа к сетевому диску по SFTP
Загрузка файлов приложения
Запуск приложения

Мы используем файлы cookies

Продолжив работу с сайтом, вы соглашаетесь с   политикой использования файлов Cookies