Skip to content

Latest commit

 

History

History
101 lines (78 loc) · 4.5 KB

File metadata and controls

101 lines (78 loc) · 4.5 KB

python-runner-tgbot

Учебный проект

Правила репозитория

  • В коде не должно быть токена бота
  • Ветка main = прод
  • Вся разработка в отдельных ветках
  • Веткам дается осмысленное название

Цели

  • Каркас бота
  • Обертка для управления Docker
  • Разработка всех обработчиков сообщений с заглушками под функциональность запуска Python-кода
  • Интеграция функциональности запуска Python-кода посредством Docker-контейнеров
  • Задокументировать код с помощью Sphinx
  • Дописать инструкции по сборке и развертыванию

Сборка

В репозитории расположен скрипт build.sh, который последовательно проводит:

  • установку зависимостей с помощью Poetry
  • сборку дистрибутивов sdist и wheel
  • сборку документации
  • сборку образа Docker

Запустить процесс можно следующим образом:

chmod +x build.sh
./build.sh

Развертывание и запуск

С помощью Docker

Соберите образ:

docker build -t python_runner_bot .

Запустите контейнер на базе собранного образа:

docker run -d --name bot_container\
    -v /var/run/docker.sock:/var/run/docker.sock\
    -v $(pwd)/bot.db:/bot/python_runner_bot/bot.db\
    python_runner_bot

Из wheel дистрибутива

Установка из wheel дистрибутива производится следующим образом:

pip install python_runner_bot-0.1.0.whl

Последующий запуск:

python -m python_runner_bot

Из исходного кода:

Системные зависимости:

  • Python v3.9+ (может заработать на более ранних версиях 3.x, однако разрабатывался с использованием версий 3.9 и 3.12)
  • Poetry (управление зависимостями, управление виртуальным окружением, сборка проекта)
  • Docker (запуск пользовательского кода)
  • make (сборка документации с помощью sphinx)

Зависимости проекта:

  • aiogram - асинхронный фреймворк для работы с Telegram Bot API
  • python-dotenv - библиотека для чтения .env и добавления его переменных к переменным окружения
  • docker - библиотека для взаимодействия с Docker Engine API
  • requests - библиотека для выполнения HTTP-запросов
  • sphinx - генератор документации для Python-проектов

Склонируйте репозиторий:

git clone git@github.com:NEK-RA/python-runner-tgbot.git

Перейдите в папку проекта и установите зависимости с помощью Poetry:

poetry install

После установки зависимостей, задайте все переменные в .env файл - в репозитории доступен example.env файл, в котором необходимо указать токен бота, после чего его можно использовать, предварительно переименовав:

mv example.env .env

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

poetry run bot

Альтернативные варианты запуска:

  • запустить скрипт: python_runner_bot/__main__.py
  • запустить модуль: python -m python_runner_bot