Учебный проект
- В коде не должно быть токена бота
- Ветка
main= прод - Вся разработка в отдельных ветках
- Веткам дается осмысленное название
- Каркас бота
- Обертка для управления Docker
- Разработка всех обработчиков сообщений с заглушками под функциональность запуска Python-кода
- Интеграция функциональности запуска Python-кода посредством Docker-контейнеров
- Задокументировать код с помощью Sphinx
- Дописать инструкции по сборке и развертыванию
В репозитории расположен скрипт build.sh, который последовательно проводит:
- установку зависимостей с помощью Poetry
- сборку дистрибутивов sdist и wheel
- сборку документации
- сборку образа Docker
Запустить процесс можно следующим образом:
chmod +x build.sh
./build.shСоберите образ:
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 дистрибутива производится следующим образом:
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