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

Назовите свой проект

В качестве примера в этой инструкции используется проект с именем testit. Вы можете использовать другое название.

Создание резервных копий

Осторожно

Не рекомендуется создавать резервные копии от имени суперпользователя root (sudo) во избежание ошибок восстановления.

На время создания резервной копии продукт будет остановлен.

  1. Перед выполнением скрипта на создание резервной копии перейдите в директорию, которая содержит docker-compose.yml файл с настройками текущей версии системы.

  2. Для создания резервной копии выполните следующие команды:

    chmod +x scripts/backup.sh
    scripts/backup.sh docker-compose.yml testit
    # Или
    scripts/backup.sh docker-compose.yml testit --notar
    # С флагом '--notar' архивы хранилищ docker не будут объединяться в один большой файл, что в моменте работы скрипта положительно скажется на утилизации места на диске в связи со спецификой работы утилиты tar
    

    Система будет запущена после окончания процесса. В рабочей директории будет создан архив с резервной копией. Формат имени файла архива: backup_{день}_{месяц}_{год}.tar. Например, backup_21_05_2019.tar. C использованием флага --notar будет создана директория backup_{день}_{месяц}_{год}, в которой будут содержаться архивы volume_name.tar.bz2.

Для внешних БД скрипт настраивается отдельно

Приведенный скрипт не распространяется на внешние БД (в случае их настройки и использования). Для внешних БД необходимо настроить резервное копирование отдельным шагом (штатными средствами PostgreSQL).

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

Продукт будет остановлен на время восстановления из резервной копии.

  1. Перед выполнением скрипта на восстановление из резервной копии перейдите в директорию, которая содержит docker-compose.yml и .env-файлы с настройками текущей версии системы.

  2. Для восстановления из резервной копии выполните следующие команды:

    chmod +x scripts/restore.sh
    scripts/restore.sh docker-compose.yml testit backup_21_05_2019.tar
    # Или
    scripts/restore.sh docker-compose.yml testit backup_21_05_2019 --notar
    # Запуск с флагом '--notar' сработает только для восстановления из резервной копии, созданной с аналогичным флагом
    

    Система будет запущена после окончания процесса.

Если вы переносите Test IT на новый сервер

При переносе продукта на другой сервер рекомендуется предварительно установить Test IT на новом сервере с настройками по умолчанию, затем восстановить данные системы из резервной копии.
Для наилучшей совместимости на новом сервере рекомендуется устанавливать Test IT той же версии, которая содержится в резервной копии, переносимой из исходного сервера.

Обновлено: