From 8b18cc444a4fb63c2f8b09436f81845e4bd0dde3 Mon Sep 17 00:00:00 2001 From: vasilytray Date: Wed, 12 Mar 2025 16:06:38 +0700 Subject: [PATCH] how add bot in Docker --- bot_in_docker.md | 111 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 1 deletion(-) diff --git a/bot_in_docker.md b/bot_in_docker.md index a81e53d..d5e0bf7 100644 --- a/bot_in_docker.md +++ b/bot_in_docker.md @@ -103,7 +103,10 @@ docker-compose logs -f #### Для обновления бота: -Внесите изменения в код +Внесите изменения в код или подтяните из GitHub изменения, например: +```sh +git pull --rebase git@github.com:vasilytray/quick_bot_tutorial.git +``` #### Пересоберите контейнер: @@ -168,4 +171,110 @@ docker-compose up -d --build ```sh docker ps +``` + +## Актуализация бота с github + +### 1. подключить проект на ВМ к git. + +В директории /home/mybot/ инициализируем git +```sh +git init +``` + +В состав Git входит утилита git config, которая позволяет просматривать и настраивать параметры, контролирующие все аспекты работы Git, а также его внешний вид. + +Чтобы посмотреть все установленные настройки и узнать где именно они заданы, используйте команду: +```sh +git config --list --show-origin +``` + +Настроим конкретный проект git под конкретного пользователя локально!: + +```sh +git config --local user.name "John Doe" +git config --local user.email johndoe@example.com +``` + +Локальные настройки будут находиться в Файле config в каталоге Git (т. е. .git/config) репозитория. + +Теперь необходимо добавить все наши существующие в дирректории файлы в систему git +```sh +git add * +``` + +Чтобы проконтролировать, что все файлы добавлены выведем их статус (у добавленных будет статус new file:) +```sh +git status +``` +или выведем короткое отображение: +```sh +git status -s +``` +при этом добавленные файлы будут иметь пометку 'A' + +Останется только закоммитить изменения +```sh +git commit -m "first add" +``` + +Далее либо запушить на GitHub в новый репозиторий, либо если на GitHub есть версия данного проекта синхронизировать +с репозиторием на GitHub. + +### 2. Подключеие проекта к GitHub +#### Настройка подключения к GitHub + +Для работы с GitHub без необходимости постоянно вводить логин и пароль при синхронизации локального и удаленного репозитория (находящегося на GitHub) нужно выполнить еще одну важную операцию — добавления ssh-ключей на github.com + +Сначала нужно сгенерировать ssh-ключи, а затем один из них (публичный) добавить в настройки GitHub. + +```sh +# Создание ssh-ключей +ssh-keygen -t ed25519 -C "your_email@example.com" +# Дальше будет несколько вопросов. На все вопросы нужно нажимать Enter. + +# Запуск агента ssh, который следит за ключами +eval "$(ssh-agent -s)" + +# Добавления нового ssh-ключа в агент +ssh-add ~/.ssh/id_ed25519 +``` + +Когда **ssh-ключи** созданы и добавлены в систему, можно приступать к интеграции с **GitHub**. Подробно эта процедура описана в документации. +В двух словах: + +1. Выведите содержимое файла ~/.ssh/id_ed25519.pub и скопируйте его: +```sh +cat ~/.ssh/id_ed25519.pub +``` + +[Добавьте ssh-ключ в аккаунт GitHub.](https://github.com/settings/keys) При добавлении вас попросят назвать ключ. Напишите что-нибудь в стиле home. + +Проверьте, что подключение работает +```sh +ssh -T git@github.com +Hi tirion! You've successfully authenticated, but GitHub does not provide shell access. +``` + +> Есть несколько способов подтянуть репозиторий: +> 1. в существующий проект можно подтянуть командой: +> ```git pull --rebase git@github.com:vasilytray/quick_bot_tutorial.git``` +> возможно появятся коллизии с существующими в дирректории файлами. +> git предложит удалить файлы, вызывающие коллизии. (возможно необходимо добавить файли в git и закоммитить) +> 2. Можно клонировать репозиторий и работать с ним. + +Клонируем репозиторий с github +```sh +git clone git@github.com:<ИМЯ НА ГИТХАБЕ>/mybot.git +``` + +Да добавляем наш файл с секретами ``.env ``в проект на ВМ иначе запустить не получиться. + +далее запускаем контейнер с ботом как описано выше. + +#### Обновление бота из репозитория GitHub + +Подтянем изменения из github +```sh +git pull --rebase ``` \ No newline at end of file