Files
ooodmdk/DOCKER_DEPLOY.md

99 lines
2.7 KiB
Markdown
Raw 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 Деплой для OOODMDK
## Описание
Этот проект настроен для деплоя на VPS с использованием Docker Compose. Приложение использует Astro с Node.js адаптером вместо Vercel.
## Файлы конфигурации
- `Dockerfile` - конфигурация Docker образа
- `docker-compose.yml` - оркестрация контейнеров
- `stack.env` - переменные окружения
- `.dockerignore` - исключения для Docker сборки
## Настройка
### 1. Переменные окружения
Отредактируйте файл `stack.env`:
```bash
# Замените на ваш домен
PUBLIC_SITE_URL=https://yourdomain.com
# Настройки порта (если нужно)
APP_PORT=4321
# Sanity токен (если используете приватные данные)
SANITY_TOKEN=your_sanity_token_here
```
### 2. Сборка и запуск
```bash
# Сборка образа
docker-compose build
# Запуск в фоновом режиме
docker-compose up -d
# Просмотр логов
docker-compose logs -f
# Остановка
docker-compose down
```
### 3. Обновление
```bash
# Остановка контейнеров
docker-compose down
# Пересборка с обновлениями
docker-compose build --no-cache
# Запуск обновленной версии
docker-compose up -d
```
## Мониторинг
Приложение включает health check, который проверяет доступность на порту 4321 каждые 30 секунд.
```bash
# Проверка статуса контейнеров
docker-compose ps
# Проверка health check
docker inspect ooodmdk-app | grep Health -A 10
```
## Порты
- **4321** - основное приложение Astro
## Безопасность
- Приложение запускается под непривилегированным пользователем
- Используется многоэтапная сборка для минимизации размера образа
- Переменные окружения изолированы в `stack.env`
## Nginx (настройте самостоятельно)
Пример базовой конфигурации для Nginx:
```nginx
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:4321;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```