From 0067f552f10bb3011ec29104713d0432d4b69c9e Mon Sep 17 00:00:00 2001 From: Elias Oehen Date: Tue, 4 Oct 2022 18:21:21 +0200 Subject: [PATCH 1/3] Move mysql example to mysql folder --- examples/.gitignore | 5 +++++ examples/{ => mysql}/docker-compose.yml | 25 +++++++++++++++++++------ examples/{ => mysql}/post-script.sh | 0 3 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 examples/.gitignore rename examples/{ => mysql}/docker-compose.yml (55%) mode change 100755 => 100644 rename examples/{ => mysql}/post-script.sh (100%) mode change 100755 => 100644 diff --git a/examples/.gitignore b/examples/.gitignore new file mode 100644 index 0000000..6180330 --- /dev/null +++ b/examples/.gitignore @@ -0,0 +1,5 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# Example container mounted folders +**/backups/ +**/db/ \ No newline at end of file diff --git a/examples/docker-compose.yml b/examples/mysql/docker-compose.yml old mode 100755 new mode 100644 similarity index 55% rename from examples/docker-compose.yml rename to examples/mysql/docker-compose.yml index 66a93ed..f65b18b --- a/examples/docker-compose.yml +++ b/examples/mysql/docker-compose.yml @@ -1,9 +1,16 @@ version: '2' +networks: + example-db-network: + name: example-db-network + services: example-db: + hostname: example-db-host container_name: example-db image: mariadb:latest + ports: + - 13306:3306 volumes: - ./db:/var/lib/mysql environment: @@ -12,6 +19,8 @@ services: - MYSQL_USER=example - MYSQL_PASSWORD=examplepassword restart: always + networks: + - example-db-network example-db-backup: container_name: example-db-backup @@ -22,17 +31,21 @@ services: - ./backups:/backup #- ./post-script.sh:/assets/custom-scripts/post-script.sh environment: + # - DEBUG_MODE=TRUE - DB_TYPE=mariadb - - DB_HOST=example-db + - DB_HOST=example-db-host - DB_NAME=example - DB_USER=example - - DB_PASS="examplepassword" - - DB_DUMP_FREQ=1440 - - DB_DUMP_BEGIN=0000 - - DB_CLEANUP_TIME=8640 + - DB_PASS=examplepassword + - DB_DUMP_FREQ=1 # backup every minute + # - DB_DUMP_BEGIN=0000 # backup starts immediately + - DB_CLEANUP_TIME=5 # clean backups they are older than 5 minute - CHECKSUM=SHA1 - - COMPRESSION=ZSTD + - COMPRESSION=GZ - SPLIT_DB=FALSE + - CONTAINER_ENABLE_MONITORING=FALSE restart: always + networks: + - example-db-network diff --git a/examples/post-script.sh b/examples/mysql/post-script.sh old mode 100755 new mode 100644 similarity index 100% rename from examples/post-script.sh rename to examples/mysql/post-script.sh From d9723823c9a91e05350a1342be7e67e70fd161fb Mon Sep 17 00:00:00 2001 From: Elias Oehen Date: Tue, 4 Oct 2022 18:22:20 +0200 Subject: [PATCH 2/3] Improve mssql server support --- install/assets/functions/10-db-backup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/assets/functions/10-db-backup b/install/assets/functions/10-db-backup index b5b7da2..6406816 100755 --- a/install/assets/functions/10-db-backup +++ b/install/assets/functions/10-db-backup @@ -173,7 +173,7 @@ backup_mssql() { compression pre_dbbackup "${DB_NAME}" print_notice "Dumping MSSQL database: '${DB_NAME}'" - /opt/mssql-tools/bin/sqlcmd -E -C -S ${DB_HOST}\,${DB_PORT} -U ${DB_USER} -P ${DB_PASS} –Q "BACKUP DATABASE \[${DB_NAME}\] TO DISK = N'${TEMP_LOCATION}/${target}' WITH NOFORMAT, NOINIT, NAME = '${DB_NAME}-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10" + /opt/mssql-tools18/bin/sqlcmd -C -S ${DB_HOST}\,${DB_PORT} -U ${DB_USER} -P ${DB_PASS} -Q "BACKUP DATABASE [${DB_NAME}] TO DISK = N'${TEMP_LOCATION}/${target}' WITH NOFORMAT, NOINIT, NAME = '${DB_NAME}-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10" exit_code=$? check_exit_code $target generate_checksum From 4d7f5e9459b50531c584ba57a6406fd8d57aee36 Mon Sep 17 00:00:00 2001 From: Elias Oehen Date: Tue, 4 Oct 2022 18:25:25 +0200 Subject: [PATCH 3/3] Add mssql docker-compose example --- examples/mssql/docker-compose.yml | 61 +++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 examples/mssql/docker-compose.yml diff --git a/examples/mssql/docker-compose.yml b/examples/mssql/docker-compose.yml new file mode 100644 index 0000000..4e9554c --- /dev/null +++ b/examples/mssql/docker-compose.yml @@ -0,0 +1,61 @@ +# +# Example for Microsoft SQL Server +# + +version: '2' + +networks: + example-mssql-net: + name: example-mssql-net + +services: + example-mssql-db: + hostname: example-db-host + image: mcr.microsoft.com/mssql/server:2019-latest + container_name: example-mssql-db + restart: unless-stopped + ports: + - "127.0.0.1:11433:1433" + networks: + example-mssql-net: + volumes: + - ./tmp/backups:/tmp/backups # shared tmp backup directory + environment: + ACCEPT_EULA: Y + MSSQL_SA_PASSWORD: 5hQa0utRFBpIY3yhoIyE + MSSQL_PID: Express + + example-mssql-db-backup: + container_name: example-mssql-db-backup + # if you want to build and use image from current source + # execute in terminal --> docker build -t tiredofit/db-backup-mssql . + # replace --> image: tiredofit/db-backup-mssql + # image: tiredofit/db-backup + image: tiredofit/db-backup-mssql + links: + - example-mssql-db + volumes: + - ./backups:/backup + - ./tmp/backups:/tmp/backups # shared tmp backup directory + #- ./post-script.sh:/assets/custom-scripts/post-script.sh + environment: + # - DEBUG_MODE=TRUE + - DB_TYPE=mssql + - DB_HOST=example-db-host + # - DB_PORT=1488 + # - DB_NAME=ALL # [ALL] not working on sql server. + # create database with name `test1` manually first + - DB_NAME=test1 + - DB_USER=sa + - DB_PASS=5hQa0utRFBpIY3yhoIyE + - DB_DUMP_FREQ=1 # backup every minute + # - DB_DUMP_BEGIN=0000 # backup starts immediately + - DB_CLEANUP_TIME=5 # clean backups they are older than 5 minute + - ENABLE_CHECKSUM=FALSE + - CHECKSUM=SHA1 + - COMPRESSION=GZ + - SPLIT_DB=FALSE + - CONTAINER_ENABLE_MONITORING=FALSE + restart: always + networks: + example-mssql-net: \ No newline at end of file