Files
tp/documentation/RestartDocs.md
2025-11-30 21:40:16 +05:00

103 lines
4.5 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.
# Автоматический запуск микросервисов после перезагрузки сервера
## Debuan OS server version
## Обзор системы
Данная система состоит из нескольких микросервисов, развернутых через Docker Compose. Для обеспечения автоматического запуска после перезагрузки сервера настроена интеграция с systemd.
## Конфигурация автоматического запуска
### 1. Systemd Service для Docker
В системе настроен сервис Docker для автоматического запуска при загрузке ОС:
```bash
sudo systemctl enable docker.service
```
Эта команда гарантирует, что Docker демон будет автоматически запускаться при старте системы.
### 2. Docker Compose и автоматический перезапуск
В файле `docker-compose.yml` для каждого сервиса настроена политика перезапуска:
```yaml
restart: unless-stopped
```
Эта политика означает:
- Сервисы автоматически перезапускаются при выходе из строя
- Сервисы не перезапускаются, если были остановлены вручную
- При перезагрузке системы все сервисы автоматически запускаются
## Процесс запуска после перезагрузки
### Последовательность запуска:
1. **Загрузка ОС** → systemd запускает Docker демон
2. **Docker** → автоматически восстанавливает контейнеры с политикой `unless-stopped`
3. **Health checks** → система проверяет готовность каждого сервиса
4. **Зависимости** → сервисы запускаются в правильном порядке согласно `depends_on`
### Health Checks и зависимости
Система использует health checks для контроля готовности сервисов:
- **Базы данных**: проверка доступности через `pg_isready`
- **API сервисы**: HTTP health checks на эндпоинты `/health`
- **Nginx**: проверка через `curl http://localhost/health`
- **Certbot**: проверка наличия SSL сертификатов
## Мониторинг состояния системы
После перезагрузки проверьте статус системы:
```bash
# Проверить статус всех контейнеров
docker-compose ps
# Просмотреть логи запуска
docker-compose logs
# Проверить health status
docker ps --format "table {{.Names}}\t{{.Status}}"
```
## Ручное управление сервисами
```bash
# Остановить все сервисы
docker-compose down
# Запустить все сервисы
docker-compose up -d
# Перезапустить конкретный сервис
docker-compose restart nginx
```
## Важные замечания
1. **Время запуска**: Полный запуск системы может занять 2-5 минут из-за health checks и зависимостей
2. **Порядок запуска**: Критические сервисы (БД) запускаются первыми
3. **Volume данные**: Данные сохраняются между перезагрузками благодаря Docker volumes
4. **Сетевые соединения**: Сети восстанавливаются автоматически
## Устранение неисправностей
Если сервисы не запускаются после перезагрузки:
```bash
# Проверить статус Docker
sudo systemctl status docker
# Проверить логи Docker
sudo journalctl -u docker.service
# Принудительно перезапустить композ
docker-compose down
docker-compose up -d
```
Система спроектирована для полного самовосстановления после перезагрузки сервера без необходимости ручного вмешательства.