Introduction
Copy the following two scripts into an editor of your choice and save them as .sh files. Add the necessary information for:
<PLACEHOLDER_REQIF-MANAGER-CONTAINERNAME>
<PLACEHOLDER_MYSQL-CONTAINERNAME>
<PLACEHOLDER_MSQL-ROOT-PW>
To get running container names you can use the command: docker ps -a
Give yourself with the command chmod 777 <filename>.sh|.cmd execution rights for the scripts. Then start the backup script with the command: ./backupReqifMGR.sh|.cmd (if your filename is "backupReqifMGR.sh") This takes some time depending on the size of the data to be backed up. The backed up data is located in the file backup.tar.gz (in your current folder from where you started the script).
After that you can use the backups for restoring in your new environment.
Backup
To Backup the current Reqif Manager Data in your Docker Containers use the follwing bash Script:
Linux
#!/bin/bash
export REQIF_MGR_CONTAINER=<PLACEHOLDER_REQIF-MANAGER-CONTAINERNAME>
export MYSQL_CONTAINER=<PLACEHOLDER_MYSQL-CONTAINERNAME>
export MYSQL_ROOT_PASSWORD=<PLACEHOLDER_MSQL-ROOT-PW>
#backup mysql
docker exec -ti $MYSQL_CONTAINER mysqldump -A -C -x --max-allowed-packet=2G -u root -p$MYSQL_ROOT_PASSWORD --result-file=dump.sql
docker exec -ti $MYSQL_CONTAINER gzip dump.sql
rm dump.sql
docker cp $MYSQL_CONTAINER:dump.sql.gz dump.sql.gz
docker exec -ti $MYSQL_CONTAINER rm dump.sql.gz
#backup reqif files
docker exec -ti $REQIF_MGR_CONTAINER tar -zcvf backup.tar.gz /app/web/uploads
rm backup.tar.gz
docker cp $REQIF_MGR_CONTAINER:/app/backup.tar.gz backup.tar.gz
docker exec -ti $REQIF_MGR_CONTAINER rm /app/backup.tar.gz
Windows
SET REQIF_MGR_CONTAINER=<PLACEHOLDER_REQIF-MANAGER-CONTAINERNAME>
SET MYSQL_CONTAINER=<PLACEHOLDER_MYSQL-CONTAINERNAME>
SET MYSQL_ROOT_PASSWORD=<PLACEHOLDER_MSQL-ROOT-PW>
rem backup mysql
docker exec -ti %MYSQL_CONTAINER% mysqldump -A -C -x --max-allowed-packet=2G -u root -p%MYSQL_ROOT_PASSWORD% --result-file=dump.sql
docker exec -ti %MYSQL_CONTAINER% gzip dump.sql
del dump.sql
docker cp %MYSQL_CONTAINER%:dump.sql.gz dump.sql.gz
docker exec -ti %MYSQL_CONTAINER% rm dump.sql.gz
rem backup reqif files
docker exec -ti %REQIF_MGR_CONTAINER tar -zcvf backup.tar.gz /app/web/uploads
del backup.tar.gz
docker cp %REQIF_MGR_CONTAINER%:/app/backup.tar.gz backup.tar.gz
docker exec -ti %REQIF_MGR_CONTAINER% rm /app/backup.tar.gz
Restore
The restore script must be located in the same folder as your backup.tar.gz file with the data you want to restore.
To restore the backed up data use the following bash script:
Linux
export REQIF_MGR_CONTAINER=<PLACEHOLDER_REQIF-MANAGER-CONTAINERNAME>
export MYSQL_CONTAINER=<PLACEHOLDER_MYSQL-CONTAINERNAME>
export MYSQL_ROOT_PASSWORD=<PLACEHOLDER_MSQL-ROOT-PW>
#restore mysql
docker cp dump.sql.gz $MYSQL_CONTAINER:dump.sql.gz
docker exec -ti $MYSQL_CONTAINER gunzip dump.sql.gz
docker exec -ti $MYSQL_CONTAINER bash -c 'mysql --max-allowed-packet=2G -u root -p$MYSQL_ROOT_PASSWORD <dump.sql'
docker exec -ti $MYSQL_CONTAINER rm -f dump.sql
#restore reqif files
docker cp backup.tar.gz $REQIF_MGR_CONTAINER:/app/backup.tar.gz
docker exec -ti $REQIF_MGR_CONTAINER tar -xvf /app/backup.tar.gz -C /
docker exec -ti $REQIF_MGR_CONTAINER rm -f /app/backup.tar.gz
Windows
export REQIF_MGR_CONTAINER=<PLACEHOLDER_REQIF-MANAGER-CONTAINERNAME>
export MYSQL_CONTAINER=<PLACEHOLDER_MYSQL-CONTAINERNAME>
export MYSQL_ROOT_PASSWORD=<PLACEHOLDER_MSQL-ROOT-PW>
rem restore mysql
docker cp dump.sql.gz %MYSQL_CONTAINER%:dump.sql.gz
docker exec -ti %MYSQL_CONTAINER% gunzip dump.sql.gz
docker exec -ti %MYSQL_CONTAINER% bash -c 'mysql --max-allowed-packet=2G -u root -p$%MYSQL_ROOT_PASSWORD% <dump.sql'
docker exec -ti %MYSQL_CONTAINER% rm -f dump.sql
rem restore reqif files
docker cp backup.tar.gz %REQIF_MGR_CONTAINER%:/app/backup.tar.gz
docker exec -ti %REQIF_MGR_CONTAINER% tar -xvf /app/backup.tar.gz -C /
docker exec -ti %REQIF_MGR_CONTAINER% rm -f /app/backup.tar.gz
Add Comment