All checks were successful
continuous-integration/drone/push Build is passing
- Add nginx/default.conf with simplified configuration to fix "no events section" error - Update docker-compose.yml to mount nginx/default.conf instead of nginx.conf - Fix backend/daemons.py data path from backend/data/daemons.json to data/daemons.json - Improve users.json path detection with fallback logic in daemons.py - Add servers directory to .gitignore - Create DOCKER_FIX.md documentation with troubleshooting steps and solutions - Ensure data directory is created automatically when backend starts
174 lines
4.7 KiB
Markdown
174 lines
4.7 KiB
Markdown
# Исправление Docker ошибок
|
||
|
||
## Проблемы
|
||
|
||
1. **Nginx**: `no "events" section in configuration`
|
||
2. **Backend**: `FileNotFoundError: [Errno 2] No such file or directory: 'backend/data'`
|
||
|
||
## Исправления
|
||
|
||
### 1. ✅ Исправлена nginx конфигурация
|
||
- Создан файл `nginx/default.conf` с упрощенной конфигурацией
|
||
- Обновлен `docker-compose.yml` для использования правильного пути
|
||
|
||
### 2. ✅ Исправлен путь к папке данных
|
||
- В `backend/daemons.py` изменен путь с `backend/data/daemons.json` на `data/daemons.json`
|
||
- Добавлена проверка существования файла пользователей
|
||
|
||
## Что нужно сделать
|
||
|
||
### Вариант 1: Обновить файлы и перезапустить
|
||
|
||
1. **Скопируйте обновленные файлы**:
|
||
- `backend/daemons.py`
|
||
- `nginx/default.conf` (новый файл)
|
||
- `docker-compose.yml`
|
||
|
||
2. **Остановите контейнеры**:
|
||
```bash
|
||
docker-compose down
|
||
```
|
||
|
||
3. **Пересоберите и запустите**:
|
||
```bash
|
||
docker-compose up --build -d
|
||
```
|
||
|
||
### Вариант 2: Быстрое исправление (без пересборки)
|
||
|
||
1. **Остановите только nginx**:
|
||
```bash
|
||
docker-compose stop nginx
|
||
```
|
||
|
||
2. **Создайте папку data в контейнере mc-panel**:
|
||
```bash
|
||
docker exec mc-panel mkdir -p /app/data
|
||
```
|
||
|
||
3. **Запустите nginx с новой конфигурацией**:
|
||
```bash
|
||
docker-compose up nginx -d
|
||
```
|
||
|
||
## Проверка
|
||
|
||
После исправления:
|
||
|
||
1. **Проверьте статус контейнеров**:
|
||
```bash
|
||
docker-compose ps
|
||
```
|
||
|
||
Должно быть:
|
||
```
|
||
NAME STATE
|
||
mc-panel Up
|
||
mc-panel-nginx Up
|
||
```
|
||
|
||
2. **Проверьте логи**:
|
||
```bash
|
||
docker-compose logs mc-panel
|
||
docker-compose logs nginx
|
||
```
|
||
|
||
3. **Откройте панель**:
|
||
- Перейдите на IP сервера (порт 80)
|
||
- Должна открыться панель управления
|
||
|
||
## Структура файлов после исправления
|
||
|
||
```
|
||
📁 Проект
|
||
├── 📁 nginx/
|
||
│ ├── default.conf # ✅ Новая упрощенная конфигурация
|
||
│ └── nginx.conf # Старая (не используется)
|
||
│
|
||
├── 📁 backend/
|
||
│ └── daemons.py # ✅ Исправлен путь к data/
|
||
│
|
||
├── docker-compose.yml # ✅ Обновлен для nginx/default.conf
|
||
└── 📁 data/ # Создается автоматически
|
||
├── daemons.json
|
||
├── users.json
|
||
└── tickets.json
|
||
```
|
||
|
||
## Переменные окружения
|
||
|
||
Убедитесь, что в `.env` файле заданы:
|
||
|
||
```env
|
||
# ZITADEL SSO
|
||
ZITADEL_ISSUER=https://sso.nevetime.ru
|
||
ZITADEL_CLIENT_ID=your_client_id
|
||
ZITADEL_CLIENT_SECRET=your_client_secret
|
||
|
||
# URLs
|
||
BASE_URL=https://your-domain.com
|
||
FRONTEND_URL=https://your-domain.com
|
||
|
||
# Security
|
||
SECRET_KEY=your-secret-key-here
|
||
```
|
||
|
||
## Если проблемы остались
|
||
|
||
### Nginx всё еще не запускается
|
||
|
||
1. **Проверьте монтирование**:
|
||
```bash
|
||
docker exec mc-panel-nginx ls -la /etc/nginx/conf.d/
|
||
```
|
||
|
||
2. **Проверьте синтаксис**:
|
||
```bash
|
||
docker exec mc-panel-nginx nginx -t
|
||
```
|
||
|
||
3. **Используйте стандартную конфигурацию**:
|
||
```bash
|
||
# Удалите volume с nginx конфигурацией из docker-compose.yml
|
||
# Nginx будет использовать стандартную конфигурацию
|
||
```
|
||
|
||
### Backend всё еще падает
|
||
|
||
1. **Создайте папки вручную**:
|
||
```bash
|
||
mkdir -p data
|
||
touch data/users.json
|
||
touch data/tickets.json
|
||
touch data/daemons.json
|
||
```
|
||
|
||
2. **Проверьте права доступа**:
|
||
```bash
|
||
chmod 755 data
|
||
chmod 644 data/*.json
|
||
```
|
||
|
||
## Альтернативное решение
|
||
|
||
Если проблемы продолжаются, можно запустить без nginx:
|
||
|
||
1. **Отключите nginx в docker-compose.yml**:
|
||
```yaml
|
||
# Закомментируйте секцию nginx
|
||
```
|
||
|
||
2. **Измените порты mc-panel**:
|
||
```yaml
|
||
ports:
|
||
- "80:8000" # Прямой доступ к панели
|
||
```
|
||
|
||
3. **Перезапустите**:
|
||
```bash
|
||
docker-compose up -d mc-panel
|
||
```
|
||
|
||
---
|
||
|
||
**После исправления панель должна работать на IP сервера через порт 80!** |