Обновлен файл docker-compose.yml с заменой переменных окружения на значения по умолчанию для упрощения настройки. Исправлены ссылки на переменные в Makefile для соответствия новым именам. Обновлена документация в README_DOCKER.md для отражения изменений в конфигурации и обязательных значений. Эти изменения улучшают удобство настройки и документацию проекта.
This commit is contained in:
parent
c0a8cf1334
commit
3e1a090fc8
35
Makefile
35
Makefile
@ -66,7 +66,7 @@ test-env: ## Проверить переменные окружения
|
|||||||
|
|
||||||
test-db: ## Тестировать подключение к БД
|
test-db: ## Тестировать подключение к БД
|
||||||
@echo "🗄️ Testing database connection..."
|
@echo "🗄️ Testing database connection..."
|
||||||
docker-compose exec $(SERVICE_NAME) python -c "import oracledb, os; conn = oracledb.connect(user=os.getenv('DB_USER'), password=os.getenv('DB_PASSWORD'), dsn=os.getenv('DB_DSN')); print('✅ Database connection successful!'); conn.close()"
|
docker-compose exec $(SERVICE_NAME) python -c "import oracledb, os; conn = oracledb.connect(user=os.getenv('db_user'), password=os.getenv('db_password'), dsn=os.getenv('db_dsn')); print('✅ Database connection successful!'); conn.close()"
|
||||||
|
|
||||||
test-bot: ## Проверить импорты бота
|
test-bot: ## Проверить импорты бота
|
||||||
@echo "🤖 Testing bot imports..."
|
@echo "🤖 Testing bot imports..."
|
||||||
@ -91,9 +91,9 @@ backup-logs: ## Создать архив логов
|
|||||||
@echo "💾 Creating logs backup..."
|
@echo "💾 Creating logs backup..."
|
||||||
tar -czf logs_backup_$(shell date +%Y%m%d_%H%M%S).tar.gz logs/
|
tar -czf logs_backup_$(shell date +%Y%m%d_%H%M%S).tar.gz logs/
|
||||||
|
|
||||||
backup-env: ## Создать бэкап переменных окружения
|
backup-config: ## Создать бэкап конфигурации
|
||||||
@echo "🔐 Creating environment backup..."
|
@echo "🔐 Creating configuration backup..."
|
||||||
cp .env .env.backup.$(shell date +%Y%m%d_%H%M%S)
|
cp docker-compose.yml docker-compose.yml.backup.$(shell date +%Y%m%d_%H%M%S)
|
||||||
|
|
||||||
# Деплой
|
# Деплой
|
||||||
deploy: build up ## Полный деплой (сборка + запуск)
|
deploy: build up ## Полный деплой (сборка + запуск)
|
||||||
@ -132,17 +132,28 @@ update: ## Обновить код и перезапустить
|
|||||||
# Конфигурация
|
# Конфигурация
|
||||||
setup: ## Первоначальная настройка
|
setup: ## Первоначальная настройка
|
||||||
@echo "⚙️ Initial setup..."
|
@echo "⚙️ Initial setup..."
|
||||||
@if [ ! -f .env ]; then \
|
|
||||||
echo "📝 Creating .env file from template..."; \
|
|
||||||
cp env.example .env; \
|
|
||||||
echo "✅ Please edit .env file with your configuration"; \
|
|
||||||
else \
|
|
||||||
echo "✅ .env file already exists"; \
|
|
||||||
fi
|
|
||||||
@echo "📁 Creating directories..."
|
@echo "📁 Creating directories..."
|
||||||
mkdir -p logs images data
|
mkdir -p logs images data
|
||||||
chmod 755 logs images data
|
chmod 755 logs images data
|
||||||
@echo "✅ Setup complete! Edit .env file and run 'make deploy'"
|
@echo "✅ Setup complete! Edit docker-compose.yml with your configuration and run 'make deploy'"
|
||||||
|
|
||||||
|
config-check: ## Проверить конфигурацию docker-compose.yml
|
||||||
|
@echo "🔍 Checking docker-compose.yml configuration..."
|
||||||
|
@if grep -q "your_bot_token_here" docker-compose.yml; then \
|
||||||
|
echo "❌ BOT_TOKEN not configured"; \
|
||||||
|
else \
|
||||||
|
echo "✅ BOT_TOKEN configured"; \
|
||||||
|
fi
|
||||||
|
@if grep -q "your_db_user" docker-compose.yml; then \
|
||||||
|
echo "❌ Database credentials not configured"; \
|
||||||
|
else \
|
||||||
|
echo "✅ Database credentials configured"; \
|
||||||
|
fi
|
||||||
|
@if grep -q "123456789" docker-compose.yml; then \
|
||||||
|
echo "⚠️ ADMIN_USER_ID using default value"; \
|
||||||
|
else \
|
||||||
|
echo "✅ ADMIN_USER_ID configured"; \
|
||||||
|
fi
|
||||||
|
|
||||||
# По умолчанию
|
# По умолчанию
|
||||||
.DEFAULT_GOAL := help
|
.DEFAULT_GOAL := help
|
||||||
@ -11,19 +11,27 @@
|
|||||||
|
|
||||||
## 🚀 Быстрый старт
|
## 🚀 Быстрый старт
|
||||||
|
|
||||||
### 1. Подготовка переменных окружения
|
### 1. Настройка конфигурации
|
||||||
|
|
||||||
Скопируйте файл с примером и настройте переменные:
|
Отредактируйте файл `docker-compose.yml` и замените значения по умолчанию на ваши:
|
||||||
|
|
||||||
```bash
|
```yaml
|
||||||
cp env.example .env
|
environment:
|
||||||
nano .env
|
# Telegram Bot настройки
|
||||||
|
- BOT_TOKEN=your_actual_bot_token_here # Замените на токен от @BotFather
|
||||||
|
- BOT_NAME=SalvageDB Bot
|
||||||
|
- ADMIN_USER_ID=your_telegram_user_id # Замените на ваш Telegram ID
|
||||||
|
|
||||||
|
# База данных Oracle
|
||||||
|
- db_user=your_actual_db_user # Замените на пользователя БД
|
||||||
|
- db_password=your_actual_db_password # Замените на пароль БД
|
||||||
|
- db_dsn=your_db_host:1521/service_name # Замените на DSN вашей БД
|
||||||
```
|
```
|
||||||
|
|
||||||
Обязательно настройте следующие переменные:
|
**Обязательно замените:**
|
||||||
- `BOT_TOKEN` - токен от @BotFather
|
- `BOT_TOKEN` - токен от @BotFather
|
||||||
- `DB_USER`, `DB_PASSWORD`, `DB_DSN` - настройки Oracle DB
|
|
||||||
- `ADMIN_USER_ID` - ваш Telegram ID для админ-функций
|
- `ADMIN_USER_ID` - ваш Telegram ID для админ-функций
|
||||||
|
- `db_user`, `db_password`, `db_dsn` - настройки Oracle DB
|
||||||
|
|
||||||
### 2. Создание необходимых директорий
|
### 2. Создание необходимых директорий
|
||||||
|
|
||||||
@ -31,7 +39,7 @@ nano .env
|
|||||||
# Создаем директории для данных
|
# Создаем директории для данных
|
||||||
mkdir -p logs images data
|
mkdir -p logs images data
|
||||||
|
|
||||||
# Устанавливаем права доступа
|
# Устанавливаем права доступа (Linux/macOS)
|
||||||
chmod 755 logs images data
|
chmod 755 logs images data
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -53,10 +61,10 @@ docker-compose logs -f salvagedb-bot
|
|||||||
```
|
```
|
||||||
salvagedb_bot/
|
salvagedb_bot/
|
||||||
├── Dockerfile # Конфигурация Docker образа
|
├── Dockerfile # Конфигурация Docker образа
|
||||||
├── docker-compose.yml # Orchestration конфигурация
|
├── docker-compose.yml # Orchestration конфигурация (содержит все настройки)
|
||||||
├── docker-entrypoint.sh # Скрипт инициализации
|
├── docker-entrypoint.sh # Скрипт инициализации
|
||||||
├── .dockerignore # Исключения для Docker
|
├── .dockerignore # Исключения для Docker
|
||||||
├── env.example # Пример переменных окружения
|
├── env.example # Пример переменных (справочно)
|
||||||
├── requirements.txt # Python зависимости
|
├── requirements.txt # Python зависимости
|
||||||
├── main.py # Основной код бота
|
├── main.py # Основной код бота
|
||||||
├── db.py # Модуль работы с БД
|
├── db.py # Модуль работы с БД
|
||||||
@ -68,21 +76,25 @@ salvagedb_bot/
|
|||||||
|
|
||||||
## 🔧 Конфигурация
|
## 🔧 Конфигурация
|
||||||
|
|
||||||
### Переменные окружения
|
### Переменные окружения в docker-compose.yml
|
||||||
|
|
||||||
|
Все настройки находятся в файле `docker-compose.yml` в секции `environment`:
|
||||||
|
|
||||||
| Переменная | Описание | Значение по умолчанию |
|
| Переменная | Описание | Значение по умолчанию |
|
||||||
|-----------|----------|----------------------|
|
|-----------|----------|----------------------|
|
||||||
| `BOT_TOKEN` | Токен Telegram бота | **Обязательно** |
|
| `BOT_TOKEN` | Токен Telegram бота | `your_bot_token_here` ⚠️ |
|
||||||
| `BOT_NAME` | Имя бота | `SalvageDB Bot` |
|
| `BOT_NAME` | Имя бота | `SalvageDB Bot` |
|
||||||
| `ADMIN_USER_ID` | ID администратора | **Обязательно** |
|
| `ADMIN_USER_ID` | ID администратора | `123456789` ⚠️ |
|
||||||
| `DECODE_PRICE` | Цена декодирования VIN | `1` |
|
| `DECODE_PRICE` | Цена декодирования VIN | `1` |
|
||||||
| `CHECK_PRICE` | Цена проверки повреждений | `10` |
|
| `CHECK_PRICE` | Цена проверки повреждений | `10` |
|
||||||
| `IMG_PRICE` | Цена доступа к фото | `100` |
|
| `IMG_PRICE` | Цена доступа к фото | `100` |
|
||||||
| `DB_USER` | Пользователь Oracle DB | **Обязательно** |
|
| `db_user` | Пользователь Oracle DB | `your_db_user` ⚠️ |
|
||||||
| `DB_PASSWORD` | Пароль Oracle DB | **Обязательно** |
|
| `db_password` | Пароль Oracle DB | `your_db_password` ⚠️ |
|
||||||
| `DB_DSN` | DSN строка Oracle DB | **Обязательно** |
|
| `db_dsn` | DSN строка Oracle DB | `localhost:1521/XEPDB1` ⚠️ |
|
||||||
| `DEBUG` | Режим отладки | `0` |
|
| `DEBUG` | Режим отладки | `0` |
|
||||||
| `TIMEZONE` | Часовой пояс | `UTC` |
|
| `TZ` | Часовой пояс | `UTC` |
|
||||||
|
|
||||||
|
**⚠️ Обязательно замените** отмеченные значения на реальные!
|
||||||
|
|
||||||
### Volumes
|
### Volumes
|
||||||
|
|
||||||
@ -150,7 +162,7 @@ docker inspect salvagedb-telegram-bot
|
|||||||
### Рекомендации
|
### Рекомендации
|
||||||
|
|
||||||
1. **Переменные окружения:**
|
1. **Переменные окружения:**
|
||||||
- Никогда не коммитьте `.env` файл
|
- Замените все placeholder значения в docker-compose.yml
|
||||||
- Используйте сильные пароли для БД
|
- Используйте сильные пароли для БД
|
||||||
- Ограничьте доступ к токену бота
|
- Ограничьте доступ к токену бота
|
||||||
|
|
||||||
@ -174,7 +186,7 @@ docker-compose exec salvagedb-bot python -c "import oracledb; print(oracledb.ver
|
|||||||
docker-compose exec salvagedb-bot python -c "
|
docker-compose exec salvagedb-bot python -c "
|
||||||
import oracledb
|
import oracledb
|
||||||
import os
|
import os
|
||||||
conn = oracledb.connect(user=os.getenv('DB_USER'), password=os.getenv('DB_PASSWORD'), dsn=os.getenv('DB_DSN'))
|
conn = oracledb.connect(user=os.getenv('db_user'), password=os.getenv('db_password'), dsn=os.getenv('db_dsn'))
|
||||||
print('Connection successful!')
|
print('Connection successful!')
|
||||||
conn.close()
|
conn.close()
|
||||||
"
|
"
|
||||||
@ -190,14 +202,14 @@ print('Bot token length:', len(os.getenv('BOT_TOKEN', '')))
|
|||||||
"
|
"
|
||||||
|
|
||||||
# Проверка aiogram
|
# Проверка aiogram
|
||||||
docker-compose exec salvagebot-bot python -c "import aiogram; print('aiogram version:', aiogram.__version__)"
|
docker-compose exec salvagedb-bot python -c "import aiogram; print('aiogram version:', aiogram.__version__)"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Логи отладки
|
### Логи отладки
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Включить DEBUG режим
|
# Включить DEBUG режим (отредактировать docker-compose.yml)
|
||||||
echo "DEBUG=1" >> .env
|
# Изменить: DEBUG=1
|
||||||
docker-compose restart
|
docker-compose restart
|
||||||
|
|
||||||
# Просмотр подробных логов
|
# Просмотр подробных логов
|
||||||
@ -225,7 +237,7 @@ docker-compose logs -f salvagedb-bot
|
|||||||
При возникновении проблем:
|
При возникновении проблем:
|
||||||
|
|
||||||
1. Проверьте логи: `docker-compose logs salvagedb-bot`
|
1. Проверьте логи: `docker-compose logs salvagedb-bot`
|
||||||
2. Убедитесь в правильности переменных окружения
|
2. Убедитесь в правильности переменных в docker-compose.yml
|
||||||
3. Проверьте подключение к Oracle DB
|
3. Проверьте подключение к Oracle DB
|
||||||
4. Проверьте валидность токена бота
|
4. Проверьте валидность токена бота
|
||||||
|
|
||||||
|
|||||||
@ -11,24 +11,24 @@ services:
|
|||||||
# Переменные окружения
|
# Переменные окружения
|
||||||
environment:
|
environment:
|
||||||
# Telegram Bot настройки
|
# Telegram Bot настройки
|
||||||
- BOT_TOKEN=${BOT_TOKEN}
|
- BOT_TOKEN=your_bot_token_here
|
||||||
- BOT_NAME=${BOT_NAME:-SalvageDB Bot}
|
- BOT_NAME=SalvageDB Bot
|
||||||
- ADMIN_USER_ID=${ADMIN_USER_ID}
|
- ADMIN_USER_ID=123456789
|
||||||
|
|
||||||
# Цены на услуги (в Telegram Stars)
|
# Цены на услуги (в Telegram Stars)
|
||||||
- DECODE_PRICE=${DECODE_PRICE:-1}
|
- DECODE_PRICE=1
|
||||||
- CHECK_PRICE=${CHECK_PRICE:-10}
|
- CHECK_PRICE=10
|
||||||
- IMG_PRICE=${IMG_PRICE:-100}
|
- IMG_PRICE=100
|
||||||
|
|
||||||
# База данных Oracle
|
# База данных Oracle
|
||||||
- db_user=${DB_USER}
|
- db_user=your_db_user
|
||||||
- db_password=${DB_PASSWORD}
|
- db_password=your_db_password
|
||||||
- db_dsn=${DB_DSN}
|
- db_dsn=localhost:1521/XEPDB1
|
||||||
|
|
||||||
# Настройки приложения
|
# Настройки приложения
|
||||||
- DEBUG=${DEBUG:-0}
|
- DEBUG=0
|
||||||
- PYTHONUNBUFFERED=1
|
- PYTHONUNBUFFERED=1
|
||||||
- TZ=${TIMEZONE:-UTC}
|
- TZ=UTC
|
||||||
|
|
||||||
# Монтируем volumes для логов и изображений
|
# Монтируем volumes для логов и изображений
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user