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