Найти тему
Код на салфетке

Docker. Запуск бота-автоответчика по готовому образу

После публикации поста "Бот-автоответчик с ChatGPT для Бизнес-аккаунта в Telegram на Aiogram 3", появился запрос на готовый Docker-образ.

Не все захотят собирать бота по гайду. Некоторым нужна возможность "взять и запустить". Для этого был собран готовый образ бота.

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

docker pull git.pressanybutton.ru/prodream/manager_bot:latest

Однако для бота всё равно необходим Redis и набор переменных окружения.

Запуск бота.

Для запуска бота и Redis, как и описано в посте, лучше использовать Docker compose. Создадим файл docker-compose.yaml со следующим содержимым:

services:
bot:
image: git.pressanybutton.ru/prodream/manager_bot:latest
restart: always
env_file:
- .env
volumes:
- .:/code

redis:
image: redis
restart: always
volumes:
- ./redis_data:/data

В отличие от композ-файла из поста в этом мы не собираем образ сами, а используем готовый.

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

Пропишем в нём все необходимые данные:

token=adasfasfas # токен бота
admin_id=1234567 # id администратора
openai_key=sk-... # токен OpenAI или neuroapi
openai_base_url=https://neuroapi.host/v1 # Оставляем neuroapi, либо прописываем API OpenAI
redis_host=redis # оставляем без изменений, либо прописываем свой Redis хост
delay=10 # указываем необходимую задержку на ответ
system_prompt=Ты бот помощник\nТвоя задача помогать людям # прописываем нужны системный промт используя \n для переноса строки

Затем выполняем команду для поднятия Docker compose сервиса:

docker compose up -d

Бот запустится и уведомит об этом.

Данный способ позволит запустить бота без необходимости написания кода. Это поможет новичкам или тем, кому достаточно указанного в посте функционала, воспользоваться ботом-автоответчиком для своих нужд.

Если же вам нужен исходный код к проекту, то он доступен подписчикам на Boosty

Пост на сайте.
Поддержать проект.