Перейти к основному содержимому

Управление проектом и обновлениями YouGile Docker

Жизненный цикл контейнеров

Запуск:

docker compose up -d

Остановка (данные сохраняются):

docker compose down

Перезапуск:

docker compose restart

Полная остановка с удалением volumes (УДАЛИТ ВСЕ ДАННЫЕ!):

docker compose down -v

Логи

Логи контейнеров (stdout/stderr):

docker compose logs -f
docker compose logs -f yougile
docker compose logs -f nginx

Логи YouGile внутри контейнера (файловые логи в named volume):

docker compose exec yougile tail -f /opt/yougile/logs/info.log
docker compose exec yougile tail -f /opt/yougile/logs/error.log

Логи Nginx (bind mount — доступны напрямую с хоста):

tail -f ./nginx/logs/access.log
tail -f ./nginx/logs/error.log

Мониторинг

Статус контейнеров:

docker compose ps

Использование ресурсов:

docker stats

Подключение к контейнерам

Подключение к контейнеру YouGile:

docker compose exec yougile sh

Подключение к контейнеру Nginx:

docker compose exec nginx sh

Выполнение команд YouGile:

docker compose exec yougile ./server task

Работа с Volumes

YouGile хранит данные в именованных Docker volumes — они сохраняются при docker compose down и при повторном запуске установщика.

VolumeСодержимое
yougile_databaseБаза данных
yougile_userdataПользовательские файлы
yougile_logsЛоги системы
yougile_extensionsРасширения

Просмотр содержимого volume:

docker run --rm -v yougile_database:/data alpine ls -la /data

Копирование данных из volume в локальную директорию:

docker run --rm -v yougile_database:/data -v $(pwd):/backup \
alpine cp -r /data/. /backup/database/

Копирование данных в volume:

docker compose down
docker run --rm -v yougile_database:/data -v $(pwd)/out:/source \
alpine sh -c "rm -rf /data/* && cp -r /source/database/. /data/"
docker run --rm -v yougile_userdata:/data -v $(pwd)/out:/source \
alpine sh -c "rm -rf /data/* && cp -r /source/user-data/. /data/"
docker compose up -d

Обновление YouGile

./yougile-container update

Важно: контейнер yougile должен быть запущен — команда проверяет наличие обновлений через docker exec. Если контейнер остановлен, сначала выполните docker compose up -d.

Команда автоматически:

  • Проверяет наличие обновлений
  • Останавливает контейнеры
  • Скачивает новую версию yougile.tar.gz
  • Пересобирает и запускает контейнеры

Конфигурационные и Docker-файлы не перезаписываются.

Чтобы дополнительно пересоздать Docker-файлы из шаблонов (например, после изменения .env):

./yougile-container update --regen

Резервное копирование

Остановите контейнеры перед резервным копированием:

docker compose down

Создайте резервные копии volumes:

BACKUP_DIR="backup-$(date +%Y%m%d)"
mkdir "$BACKUP_DIR"

docker run --rm -v yougile_database:/data -v "$(pwd)/$BACKUP_DIR":/backup \
alpine tar czf /backup/database.tar.gz -C /data .
docker run --rm -v yougile_userdata:/data -v "$(pwd)/$BACKUP_DIR":/backup \
alpine tar czf /backup/userdata.tar.gz -C /data .
docker run --rm -v yougile_logs:/data -v "$(pwd)/$BACKUP_DIR":/backup \
alpine tar czf /backup/logs.tar.gz -C /data .
docker run --rm -v yougile_extensions:/data -v "$(pwd)/$BACKUP_DIR":/backup \
alpine tar czf /backup/extensions.tar.gz -C /data .

cp -r yougile nginx certbot "$BACKUP_DIR"/

docker compose up -d

Восстановление из резервной копии

docker compose down -v  # ВНИМАНИЕ: удалит текущие данные

docker volume create yougile_database
docker volume create yougile_userdata
docker volume create yougile_logs
docker volume create yougile_extensions

docker run --rm -v yougile_database:/data -v "$(pwd)/backup-YYYYMMDD":/backup \
alpine tar xzf /backup/database.tar.gz -C /data
docker run --rm -v yougile_userdata:/data -v "$(pwd)/backup-YYYYMMDD":/backup \
alpine tar xzf /backup/userdata.tar.gz -C /data
docker run --rm -v yougile_logs:/data -v "$(pwd)/backup-YYYYMMDD":/backup \
alpine tar xzf /backup/logs.tar.gz -C /data
docker run --rm -v yougile_extensions:/data -v "$(pwd)/backup-YYYYMMDD":/backup \
alpine tar xzf /backup/extensions.tar.gz -C /data

cp -r backup-YYYYMMDD/yougile backup-YYYYMMDD/nginx backup-YYYYMMDD/certbot .
docker compose up -d