From adaf0ff85a639064c9f182f4a5a770ca5f763a96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 12:15:14 +0100 Subject: [PATCH 01/22] . --- README.md | 44 +++++++++++++++++++++++++++++++++++++ docker/scripts/backupdb.sh | 35 +++++++++++++++++++---------- docker/sqlclient.dockerfile | 8 +++++++ 3 files changed, 75 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 596f0bc..66b99fe 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,46 @@ # duplicati +## Scripts + + +### Environment Variables + +_Source: https://github.com/duplicati/duplicati/blob/master/Duplicati/Library/Modules/Builtin/run-script-example.sh_ + +- DUPLICATI__EVENTNAME + + Eventname is BEFORE if invoked as --run-script-before, and AFTER if invoked as --run-script-after. This value cannot be changed by writing it back! + +- DUPLICATI__OPERATIONNAME + + Operation name can be any of the operations that Duplicati supports. For example it can be "Backup", "Cleanup", "Restore", or "DeleteAllButN". This value cannot be changed by writing it back! + +- DUPLICATI__RESULTFILE + + If invoked as --run-script-after this will contain the name of the file where result data is placed. This value cannot be changed by writing it back! + +- DUPLICATI__REMOTEURL + + This is the remote url for the target backend. This value can be changed by echoing --remoteurl = "new value". + +- DUPLICATI__LOCALPATH + + This is the path to the folders being backed up or restored. This variable is empty operations other than backup or restore. The local path can contain : to separate multiple folders. This value can be changed by echoing --localpath = "new value". + +- DUPLICATI__PARSED_RESULT + + This is a value indicating how well the operation was performed. It can take the values: Unknown, Success, Warning, Error, Fatal. + +### Exit Codes + +_Source: https://github.com/duplicati/duplicati/blob/master/Duplicati/Library/Modules/Builtin/run-script-example.sh_ + +The following exit codes are supported: + +- 0: OK, run operation +- 1: OK, don't run operation +- 2: Warning, run operation +- 3: Warning, don't run operation +- 4: Error, run operation +- 5: Error don't run operation +- other: Error don't run operation diff --git a/docker/scripts/backupdb.sh b/docker/scripts/backupdb.sh index 9467fc3..455e883 100644 --- a/docker/scripts/backupdb.sh +++ b/docker/scripts/backupdb.sh @@ -1,25 +1,35 @@ #!/bin/bash -# Script example for creating a dump +# mysql database backup. +# executed by duplicati run-script-before-required # required environment variables: -# DB_BACKUP_TARGETFOLDER +# DESTINATION # DB_HOST # DB_USER # DB_PASSWORD -# DB_NAME -# Duplicati UI configure as a pre script -# donwload from git +# DB_NAME +# download directly from git # curl https://git.limbosolutions.com/kb/duplicati/raw/branch/main/docker/scripts/backupdb.sh > backupdb.sh | chmod +x backupdb.sh +#any error must stop execution set -e -if [ -z ${DB_BACKUP_TARGETFOLDER} ] + +if [ $DUPLICATI__OPERATIONNAME != "Backup" ] then - echo "\$DB_BACKUP_TARGETFOLDER cannot be empty empty" - exit -1 + echo "Not a backup operation. exiting!" + #OK, run operation + return 0 fi +if [ -z ${DESTINATION} ] +then + echo "\$DESTINATION cannot be empty empty" + #5: Error don't run operation + exit 5 +fi -TARGETFILENAME=db_dump_$(date -d "today" +"%Y%m%d%H%M%S").sql +TARGETFILENAME=${DB_NAME}_dump_$(date -d "today" +"%Y%m%d%H%M%S").sql +echo "dump file name:$TARGETFILENAME" if [ -f /tmp/${TARGETFILENAME} ] then @@ -31,9 +41,10 @@ mysqldump -h ${DB_HOST} --user=${DB_USER} -p"${DB_PASSWORD}" ${DB_NAME} > /tmp/$ if [ x$(find "$DB_BACKUP_TARGETFOLDER" -prune -empty) = x"$DB_BACKUP_TARGETFOLDER" ]; then -echo "folder is empty... ignoring clean db dump folder" + echo "folder is empty... ignoring clean db dump folder" else -rm -r ${DB_BACKUP_TARGETFOLDER}/* + rm -r ${DB_BACKUP_TARGETFOLDER} /* fi -mv /tmp/${TARGETFILENAME} ${DB_BACKUP_TARGETFOLDER}/${TARGETFILENAME} \ No newline at end of file +mv /tmp/${TARGETFILENAME} ${DB_BACKUP_TARGETFOLDER}/${TARGETFILENAME} +return 0 \ No newline at end of file diff --git a/docker/sqlclient.dockerfile b/docker/sqlclient.dockerfile index afabb01..2a56580 100644 --- a/docker/sqlclient.dockerfile +++ b/docker/sqlclient.dockerfile @@ -1,3 +1,11 @@ FROM duplicati/duplicati RUN apt update && apt install -y default-mysql-client && rm -rf /var/lib/apt/lists/* +# Add metadata identifying these images as our build containers (this will be useful later!) + +# clone repository + + +RUN mkdir duplicati-sqlclient/scripts +COPY /docker/scripts/* /duplicati-sqlclient/scripts/ + EXPOSE 8200 \ No newline at end of file From 396373af3823041d7096068fdd930e593f1f8f13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 12:18:15 +0100 Subject: [PATCH 02/22] . --- docker/{sqlclient.dockerfile => sqlclient/Dockerfile} | 2 +- docker/{ => sqlclient}/scripts/backupdb.sh | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename docker/{sqlclient.dockerfile => sqlclient/Dockerfile} (81%) rename docker/{ => sqlclient}/scripts/backupdb.sh (100%) diff --git a/docker/sqlclient.dockerfile b/docker/sqlclient/Dockerfile similarity index 81% rename from docker/sqlclient.dockerfile rename to docker/sqlclient/Dockerfile index 2a56580..658e6b7 100644 --- a/docker/sqlclient.dockerfile +++ b/docker/sqlclient/Dockerfile @@ -6,6 +6,6 @@ RUN apt update && apt install -y default-mysql-client && rm -rf /var/lib/apt/lis RUN mkdir duplicati-sqlclient/scripts -COPY /docker/scripts/* /duplicati-sqlclient/scripts/ +COPY /docker/sqlclient/scripts/* /duplicati-sqlclient/scripts/ EXPOSE 8200 \ No newline at end of file diff --git a/docker/scripts/backupdb.sh b/docker/sqlclient/scripts/backupdb.sh similarity index 100% rename from docker/scripts/backupdb.sh rename to docker/sqlclient/scripts/backupdb.sh From 3674771fde3d6558337d8d4b783c365bf7330905 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 12:18:52 +0100 Subject: [PATCH 03/22] . --- docker/sqlclient/Dockerfile | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docker/sqlclient/Dockerfile b/docker/sqlclient/Dockerfile index 658e6b7..8c4d93f 100644 --- a/docker/sqlclient/Dockerfile +++ b/docker/sqlclient/Dockerfile @@ -1,10 +1,5 @@ FROM duplicati/duplicati RUN apt update && apt install -y default-mysql-client && rm -rf /var/lib/apt/lists/* -# Add metadata identifying these images as our build containers (this will be useful later!) - -# clone repository - - RUN mkdir duplicati-sqlclient/scripts COPY /docker/sqlclient/scripts/* /duplicati-sqlclient/scripts/ From bd749e9fd5cd21bee1ccce8db3a77b233f78ecc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 12:27:03 +0100 Subject: [PATCH 04/22] . --- docker/sqlclient/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker/sqlclient/Dockerfile b/docker/sqlclient/Dockerfile index 8c4d93f..e82ad1a 100644 --- a/docker/sqlclient/Dockerfile +++ b/docker/sqlclient/Dockerfile @@ -1,5 +1,8 @@ FROM duplicati/duplicati RUN apt update && apt install -y default-mysql-client && rm -rf /var/lib/apt/lists/* +EXPOSE 8200 + + RUN mkdir duplicati-sqlclient/scripts COPY /docker/sqlclient/scripts/* /duplicati-sqlclient/scripts/ From 84a80be1f3a72cb81aa36ecadbd3bebd094768d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 12:27:19 +0100 Subject: [PATCH 05/22] . --- docker/sqlclient/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker/sqlclient/Dockerfile b/docker/sqlclient/Dockerfile index e82ad1a..6043248 100644 --- a/docker/sqlclient/Dockerfile +++ b/docker/sqlclient/Dockerfile @@ -3,7 +3,7 @@ RUN apt update && apt install -y default-mysql-client && rm -rf /var/lib/apt/lis EXPOSE 8200 -RUN mkdir duplicati-sqlclient/scripts -COPY /docker/sqlclient/scripts/* /duplicati-sqlclient/scripts/ +#RUN mkdir duplicati-sqlclient/scripts +#COPY /docker/sqlclient/scripts/* /duplicati-sqlclient/scripts/ -EXPOSE 8200 \ No newline at end of file +#EXPOSE 8200 \ No newline at end of file From 53965d1f7a0ec293604ba8d87d1790f4f284a9c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 12:30:07 +0100 Subject: [PATCH 06/22] . --- docker/sqlclient/Dockerfile | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docker/sqlclient/Dockerfile b/docker/sqlclient/Dockerfile index 6043248..c3debea 100644 --- a/docker/sqlclient/Dockerfile +++ b/docker/sqlclient/Dockerfile @@ -1,9 +1,7 @@ FROM duplicati/duplicati RUN apt update && apt install -y default-mysql-client && rm -rf /var/lib/apt/lists/* -EXPOSE 8200 +RUN mkdir duplicati-sqlclient/scripts +COPY /docker/sqlclient/scripts/* /duplicati-sqlclient/scripts/ -#RUN mkdir duplicati-sqlclient/scripts -#COPY /docker/sqlclient/scripts/* /duplicati-sqlclient/scripts/ - -#EXPOSE 8200 \ No newline at end of file +EXPOSE 8200 \ No newline at end of file From 3b0101a983751afdfca974e8038d9e5e00a93c3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 12:44:09 +0100 Subject: [PATCH 07/22] . --- docker/sqlclient/Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docker/sqlclient/Dockerfile b/docker/sqlclient/Dockerfile index c3debea..2adc72b 100644 --- a/docker/sqlclient/Dockerfile +++ b/docker/sqlclient/Dockerfile @@ -1,6 +1,9 @@ +#Build example +#docker build -t duplicati-sqlclient:latest -f ./docker/sqlclient/Dockerfile . + FROM duplicati/duplicati RUN apt update && apt install -y default-mysql-client && rm -rf /var/lib/apt/lists/* - +RUN mkdir duplicati-sqlclient RUN mkdir duplicati-sqlclient/scripts COPY /docker/sqlclient/scripts/* /duplicati-sqlclient/scripts/ From 6b2ea052e23c757f15eecb085d24fab51bef70dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 12:46:10 +0100 Subject: [PATCH 08/22] - --- docker/sqlclient/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/sqlclient/Dockerfile b/docker/sqlclient/Dockerfile index 2adc72b..a5e33c5 100644 --- a/docker/sqlclient/Dockerfile +++ b/docker/sqlclient/Dockerfile @@ -1,4 +1,4 @@ -#Build example +#Build example where docker build command root folder is the git repository root older #docker build -t duplicati-sqlclient:latest -f ./docker/sqlclient/Dockerfile . FROM duplicati/duplicati From 2a8f3daf084e395b4083b64426a8b074068ab4f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 14:15:23 +0100 Subject: [PATCH 09/22] . --- README.md | 8 +++++++- docker/sqlclient/README.md | 21 +++++++++++++++++++++ docker/sqlclient/scripts/backupdb.sh | 20 ++++++++++---------- 3 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 docker/sqlclient/README.md diff --git a/README.md b/README.md index 66b99fe..eb8883d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,10 @@ -# duplicati +# Duplicati + +## Custom Docker Images + +### Duplicati with mySql Client + +[+ Information](../docker/../duplicati/docker/sqlclient/README.md) ## Scripts diff --git a/docker/sqlclient/README.md b/docker/sqlclient/README.md new file mode 100644 index 0000000..d93d2a9 --- /dev/null +++ b/docker/sqlclient/README.md @@ -0,0 +1,21 @@ +# Duplicati / mySql Client + +## Build + +```bash +#example where docker root folder build command is the git repository root folder +docker build -t duplicati-sqlclient:latest -f ./docker/sqlclient/Dockerfile . +``` + +### Portainer + +Images -> Build a new Image -> URL + +**Name**:duplicati-sqlclient:latest + + +**URL:** +https://git.limbosolutions.com/kb/duplicati.git + +**Dockerfile path:** +/docker/sqlclient/Dockerfile \ No newline at end of file diff --git a/docker/sqlclient/scripts/backupdb.sh b/docker/sqlclient/scripts/backupdb.sh index 455e883..7f3f063 100644 --- a/docker/sqlclient/scripts/backupdb.sh +++ b/docker/sqlclient/scripts/backupdb.sh @@ -3,10 +3,10 @@ # executed by duplicati run-script-before-required # required environment variables: # DESTINATION -# DB_HOST -# DB_USER -# DB_PASSWORD -# DB_NAME +# MYSQL_HOST +# MYSQL_USER +# MYSQL_PASSWORD +# MYSQL_NAME # download directly from git # curl https://git.limbosolutions.com/kb/duplicati/raw/branch/main/docker/scripts/backupdb.sh > backupdb.sh | chmod +x backupdb.sh @@ -23,12 +23,12 @@ fi if [ -z ${DESTINATION} ] then - echo "\$DESTINATION cannot be empty empty" + echo "\$DESTINATION environment variable cannot be empty empty" #5: Error don't run operation exit 5 fi -TARGETFILENAME=${DB_NAME}_dump_$(date -d "today" +"%Y%m%d%H%M%S").sql +TARGETFILENAME=${MYSQL_NAME}_dump_$(date -d "today" +"%Y%m%d%H%M%S").sql echo "dump file name:$TARGETFILENAME" if [ -f /tmp/${TARGETFILENAME} ] @@ -37,14 +37,14 @@ then fi -mysqldump -h ${DB_HOST} --user=${DB_USER} -p"${DB_PASSWORD}" ${DB_NAME} > /tmp/${TARGETFILENAME} +mysqldump -h ${MYSQL_HOST} --user=${MYSQL_USER} -p"${MYSQL_PASSWORD}" ${MYSQL_NAME} > /tmp/${TARGETFILENAME} -if [ x$(find "$DB_BACKUP_TARGETFOLDER" -prune -empty) = x"$DB_BACKUP_TARGETFOLDER" ]; then +if [ x$(find "$DESTINATION" -prune -empty) = x"$DESTINATION" ]; then echo "folder is empty... ignoring clean db dump folder" else - rm -r ${DB_BACKUP_TARGETFOLDER} /* + rm -r ${DESTINATION} /* fi -mv /tmp/${TARGETFILENAME} ${DB_BACKUP_TARGETFOLDER}/${TARGETFILENAME} +mv /tmp/${TARGETFILENAME} ${DESTINATION}/${TARGETFILENAME} return 0 \ No newline at end of file From da49757a64d6461543677f3e8e9b07f79ea8d2f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 14:59:39 +0100 Subject: [PATCH 10/22] . --- docker/sqlclient/Dockerfile | 3 +-- docker/sqlclient/README.md | 38 ++++++++++++++++++++++++---- docker/sqlclient/scripts/backupdb.sh | 4 +-- 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/docker/sqlclient/Dockerfile b/docker/sqlclient/Dockerfile index a5e33c5..26b82bd 100644 --- a/docker/sqlclient/Dockerfile +++ b/docker/sqlclient/Dockerfile @@ -1,5 +1,4 @@ -#Build example where docker build command root folder is the git repository root older -#docker build -t duplicati-sqlclient:latest -f ./docker/sqlclient/Dockerfile . +#check ../README.md for more information FROM duplicati/duplicati RUN apt update && apt install -y default-mysql-client && rm -rf /var/lib/apt/lists/* diff --git a/docker/sqlclient/README.md b/docker/sqlclient/README.md index d93d2a9..1ced7ec 100644 --- a/docker/sqlclient/README.md +++ b/docker/sqlclient/README.md @@ -1,10 +1,13 @@ # Duplicati / mySql Client -## Build +Using option run-script-before-required on duplicati job set value to /duplicati-mysqlclient/scripts/backupdb.sh. +And job will create a database dump configured using docker environment variables + +## Build Image ```bash -#example where docker root folder build command is the git repository root folder -docker build -t duplicati-sqlclient:latest -f ./docker/sqlclient/Dockerfile . +#Executed on repository root folder +#docker build -t duplicati-sqlclient:latest -f docker/sqlclient/Dockerfile . ``` ### Portainer @@ -13,9 +16,34 @@ Images -> Build a new Image -> URL **Name**:duplicati-sqlclient:latest - **URL:** https://git.limbosolutions.com/kb/duplicati.git **Dockerfile path:** -/docker/sqlclient/Dockerfile \ No newline at end of file +/docker/sqlclient/Dockerfile + +## Run Container + +### Docker Compose + +```yaml +version: "3" +services: + duplicati: + image: duplicati-sqlclient + environment: + - MYSQL_HOST=${MYSQL_HOST} + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + - DESTINATION=/db-dumps + volumes: + - duplicati-data:/data + - db-dumps:/db-dumps + ports: + - 8200:8200 + restart: unless-stopped +volumes: + duplicati-data: + db-dumps: +```` diff --git a/docker/sqlclient/scripts/backupdb.sh b/docker/sqlclient/scripts/backupdb.sh index 7f3f063..bd3afbf 100644 --- a/docker/sqlclient/scripts/backupdb.sh +++ b/docker/sqlclient/scripts/backupdb.sh @@ -6,7 +6,7 @@ # MYSQL_HOST # MYSQL_USER # MYSQL_PASSWORD -# MYSQL_NAME +# MYSQL_DATABASE # download directly from git # curl https://git.limbosolutions.com/kb/duplicati/raw/branch/main/docker/scripts/backupdb.sh > backupdb.sh | chmod +x backupdb.sh @@ -37,7 +37,7 @@ then fi -mysqldump -h ${MYSQL_HOST} --user=${MYSQL_USER} -p"${MYSQL_PASSWORD}" ${MYSQL_NAME} > /tmp/${TARGETFILENAME} +mysqldump -h ${MYSQL_HOST} --user=${MYSQL_USER} -p"${MYSQL_PASSWORD}" ${MYSQL_DATABASE} > /tmp/${TARGETFILENAME} if [ x$(find "$DESTINATION" -prune -empty) = x"$DESTINATION" ]; then From 2d54e09ac049a2bb472978ca889359841c613f6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 15:02:22 +0100 Subject: [PATCH 11/22] . --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eb8883d..a97386c 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ### Duplicati with mySql Client -[+ Information](../docker/../duplicati/docker/sqlclient/README.md) +[+ Information](docker/sqlclient/README.md) ## Scripts From e09f0324b30a212a472f929c2348a07dc1a5418c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 15:04:08 +0100 Subject: [PATCH 12/22] . --- docker/sqlclient/README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/docker/sqlclient/README.md b/docker/sqlclient/README.md index 1ced7ec..8b68e1b 100644 --- a/docker/sqlclient/README.md +++ b/docker/sqlclient/README.md @@ -7,20 +7,18 @@ And job will create a database dump configured using docker environment variable ```bash #Executed on repository root folder -#docker build -t duplicati-sqlclient:latest -f docker/sqlclient/Dockerfile . +docker build -t duplicati-sqlclient:latest -f docker/sqlclient/Dockerfile . ``` ### Portainer Images -> Build a new Image -> URL -**Name**:duplicati-sqlclient:latest +**Name:** duplicati-sqlclient:latest -**URL:** -https://git.limbosolutions.com/kb/duplicati.git +**URL:** https://git.limbosolutions.com/kb/duplicati.git -**Dockerfile path:** -/docker/sqlclient/Dockerfile +**Dockerfile path:** /docker/sqlclient/Dockerfile ## Run Container From 717fd6ae8f009f7273e28189dd6fd16846c33c3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 15:05:58 +0100 Subject: [PATCH 13/22] . --- docker/sqlclient/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/sqlclient/README.md b/docker/sqlclient/README.md index 8b68e1b..986bbaf 100644 --- a/docker/sqlclient/README.md +++ b/docker/sqlclient/README.md @@ -18,7 +18,7 @@ Images -> Build a new Image -> URL **URL:** https://git.limbosolutions.com/kb/duplicati.git -**Dockerfile path:** /docker/sqlclient/Dockerfile +**Dockerfile path:** docker/sqlclient/Dockerfile ## Run Container From b21c6e625686bf2fd0cc74cd89a00f439f9b2995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 15:32:20 +0100 Subject: [PATCH 14/22] . --- docker/{sqlclient => mysqlclient}/Dockerfile | 6 +++--- docker/{sqlclient => mysqlclient}/README.md | 6 +++--- docker/{sqlclient => mysqlclient}/scripts/backupdb.sh | 2 -- 3 files changed, 6 insertions(+), 8 deletions(-) rename docker/{sqlclient => mysqlclient}/Dockerfile (54%) rename docker/{sqlclient => mysqlclient}/README.md (88%) rename docker/{sqlclient => mysqlclient}/scripts/backupdb.sh (86%) diff --git a/docker/sqlclient/Dockerfile b/docker/mysqlclient/Dockerfile similarity index 54% rename from docker/sqlclient/Dockerfile rename to docker/mysqlclient/Dockerfile index 26b82bd..f33aa1b 100644 --- a/docker/sqlclient/Dockerfile +++ b/docker/mysqlclient/Dockerfile @@ -2,8 +2,8 @@ FROM duplicati/duplicati RUN apt update && apt install -y default-mysql-client && rm -rf /var/lib/apt/lists/* -RUN mkdir duplicati-sqlclient -RUN mkdir duplicati-sqlclient/scripts -COPY /docker/sqlclient/scripts/* /duplicati-sqlclient/scripts/ +RUN mkdir duplicati-mysqlclient +RUN mkdir duplicati-mysqlclient/scripts +COPY /docker/mysqlclient/scripts/* /duplicati-mysqlclient/scripts/ EXPOSE 8200 \ No newline at end of file diff --git a/docker/sqlclient/README.md b/docker/mysqlclient/README.md similarity index 88% rename from docker/sqlclient/README.md rename to docker/mysqlclient/README.md index 986bbaf..db15bd5 100644 --- a/docker/sqlclient/README.md +++ b/docker/mysqlclient/README.md @@ -14,11 +14,11 @@ docker build -t duplicati-sqlclient:latest -f docker/sqlclient/Dockerfile . Images -> Build a new Image -> URL -**Name:** duplicati-sqlclient:latest +**Name:** duplicati-mysqlclient:latest **URL:** https://git.limbosolutions.com/kb/duplicati.git -**Dockerfile path:** docker/sqlclient/Dockerfile +**Dockerfile path:** docker/mysqlclient/Dockerfile ## Run Container @@ -28,7 +28,7 @@ Images -> Build a new Image -> URL version: "3" services: duplicati: - image: duplicati-sqlclient + image: duplicati-mysqlclient environment: - MYSQL_HOST=${MYSQL_HOST} - MYSQL_DATABASE=${MYSQL_DATABASE} diff --git a/docker/sqlclient/scripts/backupdb.sh b/docker/mysqlclient/scripts/backupdb.sh similarity index 86% rename from docker/sqlclient/scripts/backupdb.sh rename to docker/mysqlclient/scripts/backupdb.sh index bd3afbf..3e9c5af 100644 --- a/docker/sqlclient/scripts/backupdb.sh +++ b/docker/mysqlclient/scripts/backupdb.sh @@ -7,8 +7,6 @@ # MYSQL_USER # MYSQL_PASSWORD # MYSQL_DATABASE -# download directly from git -# curl https://git.limbosolutions.com/kb/duplicati/raw/branch/main/docker/scripts/backupdb.sh > backupdb.sh | chmod +x backupdb.sh #any error must stop execution set -e From 53c5f682c9b10d18bd47479aaae7cfef2311e595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 15:33:42 +0100 Subject: [PATCH 15/22] . --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a97386c..b17c801 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ### Duplicati with mySql Client -[+ Information](docker/sqlclient/README.md) +[+ Information](docker/mysqlclient/README.md) ## Scripts From 6c45cf36cd9cf0ea199eb67ea2aa0a3bf34a1010 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 9 Oct 2022 15:34:59 +0100 Subject: [PATCH 16/22] . --- docker/mysqlclient/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/mysqlclient/README.md b/docker/mysqlclient/README.md index db15bd5..1b381e5 100644 --- a/docker/mysqlclient/README.md +++ b/docker/mysqlclient/README.md @@ -7,7 +7,7 @@ And job will create a database dump configured using docker environment variable ```bash #Executed on repository root folder -docker build -t duplicati-sqlclient:latest -f docker/sqlclient/Dockerfile . +docker build -t duplicati-mysqlclient:latest -f docker/mysqlclient/Dockerfile . ``` ### Portainer From 695dbc7804563d2b8b44c2bbe55c8e0ef28be8b8 Mon Sep 17 00:00:00 2001 From: "marcio.fernandes" Date: Sun, 9 Oct 2022 15:50:37 +0100 Subject: [PATCH 17/22] Update 'docker/mysqlclient/scripts/backupdb.sh' --- docker/mysqlclient/scripts/backupdb.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/mysqlclient/scripts/backupdb.sh b/docker/mysqlclient/scripts/backupdb.sh index 3e9c5af..9a87695 100644 --- a/docker/mysqlclient/scripts/backupdb.sh +++ b/docker/mysqlclient/scripts/backupdb.sh @@ -41,7 +41,7 @@ mysqldump -h ${MYSQL_HOST} --user=${MYSQL_USER} -p"${MYSQL_PASSWORD}" ${MYSQL_DA if [ x$(find "$DESTINATION" -prune -empty) = x"$DESTINATION" ]; then echo "folder is empty... ignoring clean db dump folder" else - rm -r ${DESTINATION} /* + rm -r ${DESTINATION}/* fi mv /tmp/${TARGETFILENAME} ${DESTINATION}/${TARGETFILENAME} From 6c771c2f608b9e8587f6de6ab067d721cb0e50ee Mon Sep 17 00:00:00 2001 From: "marcio.fernandes" Date: Sun, 9 Oct 2022 15:52:55 +0100 Subject: [PATCH 18/22] Update 'docker/mysqlclient/Dockerfile' --- docker/mysqlclient/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/mysqlclient/Dockerfile b/docker/mysqlclient/Dockerfile index f33aa1b..531b99c 100644 --- a/docker/mysqlclient/Dockerfile +++ b/docker/mysqlclient/Dockerfile @@ -5,5 +5,5 @@ RUN apt update && apt install -y default-mysql-client && rm -rf /var/lib/apt/lis RUN mkdir duplicati-mysqlclient RUN mkdir duplicati-mysqlclient/scripts COPY /docker/mysqlclient/scripts/* /duplicati-mysqlclient/scripts/ - +RUN chmod +x /docker/mysqlclient/scripts/* EXPOSE 8200 \ No newline at end of file From 11c49087fc2342f12db59a73a8c87474438056da Mon Sep 17 00:00:00 2001 From: "marcio.fernandes" Date: Sun, 9 Oct 2022 16:07:21 +0100 Subject: [PATCH 19/22] Update 'docker/mysqlclient/Dockerfile' --- docker/mysqlclient/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/mysqlclient/Dockerfile b/docker/mysqlclient/Dockerfile index 531b99c..10b7f8b 100644 --- a/docker/mysqlclient/Dockerfile +++ b/docker/mysqlclient/Dockerfile @@ -5,5 +5,5 @@ RUN apt update && apt install -y default-mysql-client && rm -rf /var/lib/apt/lis RUN mkdir duplicati-mysqlclient RUN mkdir duplicati-mysqlclient/scripts COPY /docker/mysqlclient/scripts/* /duplicati-mysqlclient/scripts/ -RUN chmod +x /docker/mysqlclient/scripts/* +RUN chmod +x /duplicati-mysqlclient/scripts/* EXPOSE 8200 \ No newline at end of file From a370a68bff771af105955523703922948281566d Mon Sep 17 00:00:00 2001 From: "marcio.fernandes" Date: Sun, 9 Oct 2022 16:15:26 +0100 Subject: [PATCH 20/22] Update 'docker/mysqlclient/scripts/backupdb.sh' --- docker/mysqlclient/scripts/backupdb.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/mysqlclient/scripts/backupdb.sh b/docker/mysqlclient/scripts/backupdb.sh index 9a87695..5e7b024 100644 --- a/docker/mysqlclient/scripts/backupdb.sh +++ b/docker/mysqlclient/scripts/backupdb.sh @@ -45,4 +45,3 @@ else fi mv /tmp/${TARGETFILENAME} ${DESTINATION}/${TARGETFILENAME} -return 0 \ No newline at end of file From a771b44a57f1e6b2f3673fb9380cdb520b5a9fc2 Mon Sep 17 00:00:00 2001 From: "marcio.fernandes" Date: Sun, 9 Oct 2022 16:20:15 +0100 Subject: [PATCH 21/22] Update 'docker/mysqlclient/scripts/backupdb.sh' --- docker/mysqlclient/scripts/backupdb.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/mysqlclient/scripts/backupdb.sh b/docker/mysqlclient/scripts/backupdb.sh index 5e7b024..821a81d 100644 --- a/docker/mysqlclient/scripts/backupdb.sh +++ b/docker/mysqlclient/scripts/backupdb.sh @@ -15,7 +15,7 @@ if [ $DUPLICATI__OPERATIONNAME != "Backup" ] then echo "Not a backup operation. exiting!" #OK, run operation - return 0 + exit fi From 8a22e27d3a2ff6a065c37b687fbc22598337ecad Mon Sep 17 00:00:00 2001 From: "marcio.fernandes" Date: Sun, 9 Oct 2022 16:23:16 +0100 Subject: [PATCH 22/22] Update 'docker/mysqlclient/scripts/backupdb.sh' --- docker/mysqlclient/scripts/backupdb.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker/mysqlclient/scripts/backupdb.sh b/docker/mysqlclient/scripts/backupdb.sh index 821a81d..25b3aab 100644 --- a/docker/mysqlclient/scripts/backupdb.sh +++ b/docker/mysqlclient/scripts/backupdb.sh @@ -11,8 +11,9 @@ #any error must stop execution set -e -if [ $DUPLICATI__OPERATIONNAME != "Backup" ] -then +if [ $DUPLICATI__OPERATIONNAME == "Backup" ] + echo "Backup Job!!" +else echo "Not a backup operation. exiting!" #OK, run operation exit