99 lines
2.7 KiB
Markdown
99 lines
2.7 KiB
Markdown
# 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;
|
||
}
|
||
}
|
||
``` |