3.7 KiB
3.7 KiB
Docker Setup для Sakai Vue
Этот проект настроен для работы с Docker. Ниже приведены инструкции по сборке и запуску приложения.
Быстрый старт
1. Сборка и запуск с Docker Compose
# Сборка и запуск
docker-compose up --build
# Запуск в фоновом режиме
docker-compose up -d --build
Приложение будет доступно по адресу: http://localhost:3000
2. Сборка и запуск с Docker
# Сборка образа
docker build -t sakai-vue .
# Запуск контейнера
docker run -p 3000:80 sakai-vue
Структура Docker файлов
Dockerfile- основной файл для сборки образа (исправлен для dev зависимостей)Dockerfile.optimized- оптимизированная версия с non-root пользователемdocker-compose.yml- конфигурация для Docker Composenginx.conf- конфигурация Nginx для SPA приложения.dockerignore- файлы, исключаемые из контекста сборки
Особенности конфигурации
Multi-stage build
Dockerfile использует многоэтапную сборку:
- Builder stage - сборка приложения с Node.js
- 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
Команды для разработки
# Остановка контейнеров
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:
environment:
- NODE_ENV=production
- API_URL=https://your-api.com
Производственное развертывание
Для продакшена рекомендуется:
- Использовать конкретные версии образов
- Настроить SSL/TLS
- Использовать внешний reverse proxy
- Настроить мониторинг и логирование
# Пример для продакшена
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