Backup e Restauração usando Docker

Por favor, leia o capítulo Backup e Restauração para informações básicas sobre os scripts de backup e restauração.

Considerações para executar OTOBO no Docker

Os scripts padrão backup.pl e restore.pl também podem ser usados com OTOBO rodando no Docker. No entanto, algumas limitações específicas do Docker devem ser consideradas.

Primeiro, precisamos nos certificar de que os arquivos de backup não sejam criados no sistema de arquivos interno de um contêiner do Docker. Porque, nesse caso, os arquivos criados seriam perdidos quando o contêiner for interrompido. Isso significa que o diretório de backup deve estar localizado em um volume. Para este manual, consideramos apenas o caso mais simples, em que o diretório de backup é um diretório local no host Docker. A localização do diretório de backup no contêiner pode ser escolhida arbitrariamente. Neste exemplo, escolhemos o dir local otobo_backup como o local no host e /otobo_backup como o local no contêiner.

Em segundo lugar, os comandos no contêiner Docker geralmente são executados como o usuário otobo com a id de usuário 1000 e a id de grupo 1000. Deve-se ter certeza de que este usuário pode escrever no diretório de backup.

Primeiro, precisamos criar o volume.

# create the backup directory on the host
docker_admin>mkdir otobo_backup

# give the backup dir to the user otobo, elevated privs might be needed for that
docker_admin>chown 1000:1000 otobo_backup

# create the Docker volume
docker_admin>docker volume create --name otobo_backup --opt type=none --opt device=$PWD/otobo_backup --opt o=bind

# inspect the volume out of curiosity
docker_admin>docker volume inspect otobo_backup

Para criar o backup, precisamos de um banco de dados em execução e os volumes otobo_opt_otobo e otobo_backup. Isso significa que o servidor da web e o daemon OTOBO podem, mas não precisam, ser parados.

# create a backup
docker_admin>docker run -it --rm --volume otobo_opt_otobo:/opt/otobo --volume otobo_backup:/otobo_backup --network otobo_default rotheross/otobo:latest scripts/backup.pl -d /otobo_backup

# check the backup file
docker_admin>tree otobo_backup

Nota

Para restaurar o banco de dados, certifique-se de que o banco de dados otobo existe e não contém tabelas.

To drop an existing otobo database and create a new one you can use the following commands. First, you have to connect to the MySQL CLI of the db container.

As soon as you are connected to the MySQL server, you can drop and recreate the otobo database.

mysql@4f7783595190:/$>DROP DATABASE otobo;
mysql@4f7783595190:/$>CREATE DATABASE otobo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql@4f7783595190:/$>GRANT ALL PRIVILEGES ON otobo.* TO 'otobo'@'%';

Para restaurar o backup, também precisamos especificar qual backup deve ser restaurado. O placeholder <TIMESTAMP> é algo como 2020-09-07_09-38.

# restore a backup
docker_admin>docker run -it --rm --volume otobo_opt_otobo:/opt/otobo --volume otobo_backup:/otobo_backup --network otobo_default rotheross/otobo:latest scripts/restore.pl -d /opt/otobo -b /otobo_backup/<TIMESTAMP>