Docker

Щоб оновити сервер HES для Docker, вам потрібно:

  1. Оновіть усі програми Hideez Client до 3.15.Х.

  2. Вимкніть захист даних на HES.

  3. Оновіть сервер, дотримуючись інструкцій нижче.

  4. Увімкніть захист даних знову (див. крок 2)

Створіть директорію для резервного копіювання

$ sudo mkdir /opt/HES.old

Резервне копіювання бази даних (оптимально для можливого подальшого відновлення):

  • MySQL Database:

Наступна команда створить копію бази даних (dump) у файлі db.sql у директорії /opt/HES.old (на хості) з контейнера з назвою hes-mysql:

$ cd /opt/HES/
$ sudo sh -c "docker exec hes-mysql /usr/bin/mysqldump -u root --password=password db > /opt/HES.old/db.sql"
  • MS SQL Database:

Наступна команда створить резервну копію бази даних db у файлі db.bak у локальній директорії /opt/HES/mssql/data/:

 $ cd /opt/HES/
 $ sudo docker exec -it hes-mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "C00ll_Passwrd_here"  -Q "BACKUP DATABASE [db] TO DISK = N'/var/opt/mssql/data/db.bak' WITH NOFORMAT, NOINIT, NAME = 'db-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"

Замініть "C00ll_Passwrd_here", ввівши свій пароль, який ви вказали у файлі /opt/HES/docker-compose.yml.

Зупинка контейнерів:

$ cd /opt/HES/
$ sudo docker compose down

(Оптимально) Збережіть образ HES у файл tar (для можливого подальшого відновлення):

$ sudo docker save -o /opt/HES.old/hes.tar hes

Remove image of HES:

$ sudo docker rmi hes --force

Щоб оновити сервер до останньої версії, виконайте команди:

$ sudo docker build . -t hes

І перезапустіть контейнери:

$ sudo docker compose up -d

Якщо щось піде не так, ви можете відновити сервер HES за допомогою таких команд:

Зупинити контейнери:

$ cd /opt/HES/
$ sudo docker compose down

Видалити образи HES:

$ sudo docker rmi hes --force

Відновити базу даних

  • My SQL:

Запустити тільки контейнер MySQL:

$ sudo docker compose up -d hes-mysql

Відновити базу даних MySQL з dump -файлу

$ sudo cat /opt/HES.old/db.sql | sudo docker exec -i hes-mysql /usr/bin/mysql -u root --password=password db
$ sudo docker compose down 
  • MS SQL:

Запустіть лише контейнер MS SQL:

$ sudo docker compose up -d hes-mssql

Відновити базу даних MS SQL з bak-файлу:

 $ cd /opt/HES/
 $ sudo docker exec -it hes-mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "C00ll_Passwrd_here"  -Q "RESTORE DATABASE [db] FROM DISK = N'/var/opt/mssql/data/db.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"

Замініть "C00ll_Passwrd_here", ввівши свій пароль, який ви вказали у файлі /opt/HES/docker-compose.yml

Відновити старий образ HES з файлу tar:

$ sudo docker load -i /opt/HES.old/hes.tar

і початкові контейнери:

$ sudo docker compose up -d

Перевіривши, що оновлення пройшло успішно і все працює нормально, ви можете видалити копії бази даних і сервера:

$ sudo rm -rf /opt/HES.old