Установите Python, если этого ещё не сделали.
Проверьте, что python
установлен и корректно настроен. Запустите его в командной строке:
python --version
Важно! Версия Python должна быть не ниже 3.9
Возможно, вместо команды python
здесь и в остальных инструкциях этого README придётся использовать python3
. Зависит это от операционной системы и от того, установлен ли у вас Python старой второй версии.
В каталоге проекта создайте виртуальное окружение:
python -m venv venv
Активируйте его. На разных операционных системах это делается разными командами:
- Windows:
.\venv\Scripts\activate
- MacOS/Linux:
source venv/bin/activate
Для установки зависимостей:
pip install -r requirements.txt
Создайте бот в телеграм, для этого
- Напишите боту @BotFather команду
/newbot
- Задайте имя бота:
- Первое — (можно на русском) как он будет отображаться в списке контактов
- Второе — (латинскими буквами) имя, по которому бота можно будет найти в поиске,
-- Второе имя должно заканчиваться на _bot
Для запуска в корне проекта нужно создать файл .env со следующим содержимым:
NOTIFIER_BOT_TOKEN=<Токен вашего телеграм-бота>
DEVMAN_TOKEN=<Токен для доступа к API DevMan>
ALLOWED_CHAT_ID=<id вашего чата в телеграм>
Узнать ID можно здесь: https://t.me/userinfobot
Создайте еще одного бота (аналогично первому) - для отправки логов ошибок. В файл .env добавьте ещё одну переменную:
LOGGER_BOT_TOKEN=<Токен вашего телеграм-бота-логгера>
Проверьте, что у вас установлен docker
:
docker --version
Если нет, установите его - подробно, как скачать и установить docker
на любую систему, смотрите на официальном сайте: https://www.docker.com/
Создайте образ на основе Dockerfile
- для этого в папке проекта запустите команду:
docker build -t bot_image .
- Где
bot_image
- имя образа вашего бота - Важно! точка в конце обязательна - она указывает, что файлы для сборки находятся в той же папке, где запущена команда.
Создайте экземпляр контейнера - для этого запустите команду:
docker -d --env-file .env --name chat_bot bot_image
Где:
chat_bot
- имя создаваемого контейнераbot_image
- имя ранее созданного образа.env
- файл с настройками
Работу контейнера можно проверить командой:
docker ps
Таким образом, используя разные файлы .env, можно создавать любое количество одновременно работающих ботов, не персобирая образ.
Код написан в образовательных целях на онлайн-курсе для веб-разработчиков https://dvmn.org/