- либо использовать
make init_dev - либо открыть Makefile и подсмотреть комады там
- скопировать файл .env.example в
.env - заполнить значения переменных
.envсодержит секреты, которые не должна лежать в репозитории, поэтому он добавлен в .gitignore.envподтягивается как при запуске приложения без контейнера, так и добавляется в конфигурации docker-compose.yml, где пробрасывается внутрь контейнера
- открыть main.py
- расставить точки останова (опционально)
- слева выбрать меню отладки (
Ctrl+Shift+D) - рядом с зеленой стрелочкой выбрать конфигурацию
Python Debugger: Current File - запустить отладку
- изменить конфигурацию на
Docker: Python - General - запустить отладку
- запустить контейнер для отладки с помощью команды
make debug - изменить конфигурацию на
Python Debugger: Remote Attach - подключиться отладчиком
- после завершения отладки выполнить команду
make stopdebug
- создать директорию
dataи дать права 777 (или создать docker volume) - выполнить команду docker compose up -d --build
- или через
make(подсмотреть в Makefile) - посмотреть логи контейнера можно командой
docker compose logs -f - чтобы остановить логи нажать
Ctrl+C
- остановка командой
docker compose down - после нескольких тестовых сборок можно почистить образы/контейнеры которые накопились:
docker system prune - для очистки volume (данных приложения) можно использовать
docker system prune --volumes(использовать с осторожностью!)
- с использоанием Github Actions можно автоматически собирать контейнеры
- описание сборки в файле docker-image.yml
- но будут нужны дополнительные настройки для доступа к нему (сделать публичным, например)
- тогда после каждого коммита (или публикации тэга и тд) будет подготавливаться новая версия образа приложения
- образ можно заранее прописать в файле docker-compose.yml на сервере
- тогда для обновления приложение достаточно будет запустить команду
docker compose pull && docker compose up -d - сборка на сервере уже не потребуется
- https://docs.python-telegram-bot.org/en/v21.6/index.html
- https://core.telegram.org/bots
- https://docs.github.com/en/actions
- https://docs.docker.com/reference/cli/docker/compose/
- https://code.visualstudio.com/docs/python/python-quick-start
- https://code.visualstudio.com/docs/containers/quickstart-python
- https://code.visualstudio.com/docs/containers/debug-python
- https://code.visualstudio.com/docs/containers/docker-compose#_python
- "шаблон" без всякого лишнего, который можно использовать: clean_bot_template.py
- предлагаю выбрать любое открытое API из списка public-apis
- добавить обработку ботом сообщения от пользователя и выдачи результата
- например (выбрать одно, лучше придумать своё):
- пользователь вводит команду, получает картинку кота
- пользователь проверяет курс валют
- пользователь запрашивает погоду по местоположению
- пользователь отправляет английский текст и получает перевод на русский
- пользователь вычисляет метоположение по IP
- пользователь отправляет ссылку, получает сокращенный вариант
- и тд
- если не хочется использовать апи, реализуйте локальные функции: заметки, список покупок, калькулятор и тд