Перейти к основному содержимому
Версия: 7.0

Docker

Онлайн-обновление

Проверка прав пользователя и запуск скрипта

Если обновление выполняется не от имени root — необходимо убедиться, что пользователь состоит в группе docker.

Проверить нахождение пользователя в группе docker можно следующей командой:

id $USER | grep docker

Если пользователь не принадлежит группе, добавить его через команду:

sudo usermod -a -G docker $USER
осторожно

Скрипт использует curl. Если в вашей сети используется прокси-сервер, необходимо добавить переменные окружения:
export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080

Затем запустить скрипт обновления Пассворка:

./update.sh
Выполняемые действия
  1. Проверки наличия утилит unzip, curl и jq
  2. Импорта переменных из файла .env
  3. Проверки переменной $CERT
  4. Получения последней доступной версии Пассворка
  5. Проверки архива с помощью цифровой подписи
  6. Создания резервной копии базы данных и конфигурационных файлов
  7. Загрузки и обновления
  8. Обработки ошибок

Завершение работы скрипта

Перед обновлением Пассворка, скрипт создает резервную копию базы данных в директории ./backup/mongo-xxxx-xx-xx-xx:xx:xx.dump и копию конфигурационных файлов в корневой директории ./conf-20240201-xxxxxx.tar.gz.

Офлайн-обновление

Проверка прав пользователя

Если обновление выполняется не от имени root — необходимо убедиться, что пользователь состоит в группе docker.

Проверить нахождение пользователя в группе docker можно следующей командой:

id $USER | grep docker

Если пользователь не принадлежит группе, добавить его через команду:

sudo usermod -a -G docker $USER

Загрузка обновления и запуск скрипта

Перейти на клиентский портал и получить последнюю доступную версию Пассворка с цифровой подписью:

Пример получения 7 версии Пассворка

Для проверки цифровой подписи также нужен публичный ключ Пассворка public.key, способы получения:

Вручную

  • Открыть URL;
  • Скопировать всё содержимое;
  • Вставить в файл и сохранить содержимое с именем — public.key.

Автоматически (curl или wget)

curl -o public.key https://passwork.ru/public-key

Переместите полученные файлы на сервер с Пассворком в корневое расположение Docker сборки:

/<passwork>/Passwork-xxxxxx.zip
/<passwork>/xxxxxx.sig
/<passwork>/public.key

Запустить скрипт для обновления:

cd /<passwork>/
./offline_update.sh --skip
к сведению

По умолчанию скрипт проверяет цифровую подпись архива с помощью предоставленного открытого ключа. Если подпись недействительна или отсутствует, обновление будет прервано.

Если вы доверяете источнику архива, проверку подписи можно пропустить:

./offline_update.sh --skip
Выполняемые действия
  • Импорт переменных из файла .env
  • Определение режима обновления:
    • Если архив с версией найден, устанавливается режим «zip»
    • Если директория с версией найдена, устанавливается режим «directory»
  • Создание резервной копии базы данных и конфигурационных файлов
  • Проверка наличия утилиты Unzip при обнаружении архива .zip
  • Проверка архива с помощью цифровой подписи
  • Распаковка содержимого архива, либо копирование содержимого директории в каталог «www»
  • Выбор метода обновления и выполнения
  • Обработка ошибок

Завершение работы скрипта

Перед обновлением Пассворка, скрипт создаст резервную копию базы данных в директории ./backup/mongo-xxxx-xx-xx-xx:xx:xx.dump и копию конфигурационных файлов в корневой директории ./conf-20240201-xxxxxx.tar.gz