Files
2025-09-07 14:11:37 +05:00

115 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Docker Setup для Sakai Vue
Этот проект настроен для работы с Docker. Ниже приведены инструкции по сборке и запуску приложения.
## Быстрый старт
### 1. Сборка и запуск с Docker Compose
```bash
# Сборка и запуск
docker-compose up --build
# Запуск в фоновом режиме
docker-compose up -d --build
```
Приложение будет доступно по адресу: http://localhost:3000
### 2. Сборка и запуск с Docker
```bash
# Сборка образа
docker build -t sakai-vue .
# Запуск контейнера
docker run -p 3000:80 sakai-vue
```
## Структура Docker файлов
- `Dockerfile` - основной файл для сборки образа (исправлен для dev зависимостей)
- `Dockerfile.optimized` - оптимизированная версия с non-root пользователем
- `docker-compose.yml` - конфигурация для Docker Compose
- `nginx.conf` - конфигурация Nginx для SPA приложения
- `.dockerignore` - файлы, исключаемые из контекста сборки
## Особенности конфигурации
### Multi-stage build
Dockerfile использует многоэтапную сборку:
1. **Builder stage** - сборка приложения с Node.js
2. **Production stage** - запуск с Nginx
### Nginx конфигурация
- Поддержка Vue Router history mode
- Gzip сжатие
- Кэширование статических ресурсов
- Security headers
- Health check endpoint
### Health Check
Приложение включает health check endpoint по адресу `/health`
## Решение проблем
### Проблема: "vite: not found" при сборке
**Причина:** Использование `npm ci --only=production` исключает dev зависимости, включая Vite.
**Решение:** Исправлено в Dockerfile - теперь используется `npm ci` для установки всех зависимостей, включая dev зависимости, необходимые для сборки.
### Проблема: Уязвимости безопасности
**Решение:** Используйте `Dockerfile.optimized` который:
- Создает non-root пользователя
- Устанавливает минимальные права доступа
- Включает health checks
## Команды для разработки
```bash
# Остановка контейнеров
docker-compose down
# Просмотр логов
docker-compose logs -f
# Пересборка без кэша
docker-compose build --no-cache
# Вход в контейнер
docker exec -it sakai-vue-app sh
# Тестирование исправленного Dockerfile
docker build -t sakai-vue-test .
```
## Переменные окружения
Вы можете настроить переменные окружения в `docker-compose.yml`:
```yaml
environment:
- NODE_ENV=production
- API_URL=https://your-api.com
```
## Производственное развертывание
Для продакшена рекомендуется:
1. Использовать конкретные версии образов
2. Настроить SSL/TLS
3. Использовать внешний reverse proxy
4. Настроить мониторинг и логирование
```bash
# Пример для продакшена
docker run -d \
--name sakai-vue-prod \
--restart unless-stopped \
-p 80:80 \
-p 443:443 \
-v /path/to/ssl:/etc/nginx/ssl \
sakai-vue
```