Установка
Запуск и обновление
Запуск сервиса, проверка состояния, диагностика и процедура обновления
Первый запуск
Создайте внешнюю сеть Docker
docker network create net
Запустите все контейнеры
docker-compose up -d
Убедитесь, что все контейнеры запущены
docker ps -a
Все контейнеры должны иметь статус Up и (healthy).
При первом запуске контейнерам может потребоваться некоторое время для инициализации. Статус
health: starting является нормальным в течение первых 30–60 секунд.Проверка работоспособности
Статус контейнеров
docker-compose ps
Ожидаемый результат — все сервисы в статусе running (healthy):
| Сервис | Порт | Проверка |
|---|---|---|
konkurs-client | 3000 | nc -z localhost 3000 |
konkurs-api | 80 | nc -z localhost 80 |
konkurs-nginx | 81 → 80 | Доступ через браузер |
konkurs-pgsql | 7432 → 5432 | pg_isready |
konkurs-valkey | 6379 | valkey-cli ping |
konkurs-meilisearch | 7700 | wget --spider http://127.0.0.1:7700/health |
Просмотр логов
docker-compose logs -f
docker-compose logs -f konkurs-api
docker-compose logs --tail=100 konkurs-api
Обновление сервиса
Перед обновлением рекомендуется создать резервную копию базы данных и убедиться, что текущая версия работает стабильно.
Создайте резервную копию БД
docker-compose exec konkurs-pgsql pg_dump -U ${DB_USERNAME} ${DB_DATABASE} > backup_$(date +%Y%m%d_%H%M%S).sql
Загрузите новые образы
docker-compose pull
Пересоздайте контейнеры с новыми образами
docker-compose up -d
Docker Compose автоматически пересоздаст только те контейнеры, образы которых были обновлены.
Проверьте статус после обновления
docker-compose ps
docker-compose logs --tail=50
Полезные команды
| Команда | Описание |
|---|---|
docker-compose stop | Остановить все контейнеры |
docker-compose start | Запустить остановленные контейнеры |
docker-compose restart | Перезапустить все контейнеры |
docker-compose down | Остановить и удалить контейнеры (тома сохраняются) |
docker-compose exec konkurs-api php artisan migrate | Выполнить миграции БД |
docker-compose exec konkurs-api php artisan cache:clear | Очистить кэш приложения |
Команда
docker-compose down -v удалит все тома, включая данные БД. Используйте её только при полной переустановке.Устранение неполадок
Проверьте логи контейнера:
docker-compose logs konkurs-api
Частые причины:
- Неверные параметры в
.env(подключение к БД, ключ приложения) - Недоступность зависимых сервисов (БД, Redis)
- Нехватка дискового пространства
Убедитесь, что контейнер PostgreSQL работает и healthcheck проходит:
docker-compose exec konkurs-pgsql pg_isready -U ${DB_USERNAME} -d ${DB_DATABASE}
Проверьте корректность переменных DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD в файле .env.
Определите, какой процесс занимает порт:
ss -tlnp | grep :81
Измените маппинг портов в docker-compose.yml или остановите конфликтующий процесс.
Проверьте использование диска:
df -h
docker system df
Очистите неиспользуемые образы и тома:
docker system prune -a --volumes