From e79bfbf3845cf89bbd3a49c46d7a6160abe0aa66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Mon, 20 Jan 2025 20:16:51 +0000 Subject: [PATCH] revision --- .devcontainer/Dockerfile | 7 +++++ .devcontainer/devcontainer.json | 38 ++++++++++++++++++++++++ .gitea/workflows/docker-image.deploy.yml | 6 ++-- .github/dependabot.yml | 12 ++++++++ .vscode/settings.json | 20 +++++++++++-- README.md | 19 ++++-------- docker/Dockerfile | 17 +++++++++++ docker/{mysqlclient => }/README.md | 9 ------ docker/mysqlclient/Dockerfile | 15 ---------- 9 files changed, 101 insertions(+), 42 deletions(-) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json create mode 100644 .github/dependabot.yml create mode 100644 docker/Dockerfile rename docker/{mysqlclient => }/README.md (79%) delete mode 100644 docker/mysqlclient/Dockerfile diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..8fbf4c6 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,7 @@ +FROM duplicati/duplicati + +RUN apt update && \ +apt install -y default-mysql-client && \ +rm -rf /var/lib/apt/lists/* + +EXPOSE 8200 \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..86e4244 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,38 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu +{ + "name": "duplicati_dev-container", + "build": { + // Path is relative to the devcontainer.json file. + "dockerfile": "Dockerfile" + }, + "features": { + "ghcr.io/devcontainers/features/git:1": { + "ppa": true, + "version": "latest" + }, + "ghcr.io/prulloac/devcontainer-features/gitlint:1": {} + }, + "containerEnv": {} + + //"features": { + // "ghcr.io/wxw-matt/devcontainer-features/command_runner:0": {}, + // "ghcr.io/wxw-matt/devcontainer-features/script_runner:0": {}, +// "ghcr.io/devcontainers-extra/features/act:1": {} +// } + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "uname -a", + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/.gitea/workflows/docker-image.deploy.yml b/.gitea/workflows/docker-image.deploy.yml index ef68769..c6ee3ac 100644 --- a/.gitea/workflows/docker-image.deploy.yml +++ b/.gitea/workflows/docker-image.deploy.yml @@ -1,7 +1,7 @@ on: push: paths: - - "docker/mysqlclient/**" + - "docker/**" - ".gitea/**" - "scripts/**" jobs: @@ -26,6 +26,6 @@ jobs: uses: docker/build-push-action@v6 with: context: ${{gitea.workspace}} - file: ${{gitea.workspace}}/docker/mysqlclient/Dockerfile + file: ${{gitea.workspace}}/docker/Dockerfile push: true - tags: git.limbosolutions.com/kb/duplicati:mysql-latest + tags: git.limbosolutions.com/kb/duplicati:latest diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..f33a02c --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,12 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for more information: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates +# https://containers.dev/guide/dependabot + +version: 2 +updates: + - package-ecosystem: "devcontainers" + directory: "/" + schedule: + interval: weekly diff --git a/.vscode/settings.json b/.vscode/settings.json index 437d160..ab96dc1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,19 @@ { - "docker.commands.build": "${containerCommand} build --pull --rm -f \"${dockerfile}\" -t ${tag} . --progress=plain" -} \ No newline at end of file + "docker.commands.composeUpSubset": [ + + { + "label": "Compose Up", + "template": "${composeCommand} ${profileList} ${configurationFile} up ${detached} ${build} ${serviceList}" + } + ], + "docker.commands.composeUp": [ + + { + "label": "Compose Up", + "template": "${composeCommand} ${configurationFile} up ${detached} ${build}" + } + ], + "docker.contexts.showInStatusBar": true +} // { +// "docker.commands.build": "${containerCommand} build --pull --rm -f \"${dockerfile}\" -t ${tag} . --progress=plain" +// } \ No newline at end of file diff --git a/README.md b/README.md index ff5cf0c..4688e47 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ - [Docker](#docker) - [Duplicati/mySql Client - image](#duplicatimysql-client---image) - [Scripts](#scripts) - - [Backup mySql Database](#backup-mysql-database) + - [mysql - dump backup](#mysql---dump-backup) - [Influxdb Reporting](#influxdb-reporting) - [Docker log](#docker-log) - [Environment Variables](#environment-variables) @@ -20,23 +20,17 @@ Image contains all scripts -[+ Information](docker/mysqlclient/README.md) +[+ Information](docker/README.md) ## Scripts -_Source: https://github.com/duplicati/duplicati/blob/master/Duplicati/Library/Modules/Builtin/run-script-example.sh_ +Source: -### Backup mySql Database +### mysql - dump backup -Using option run-script-before-required on duplicati job set value to [script](scripts/duplicati-mysql-backup). -And job will create a database dump configured using environment variables. -Example: ---run-script-after=/duplicati-mysql-backup - -[script](scripts/duplicati-mysql-backup) +Duplicati options set `run-script-before-required` to [duplicati-mysql-backup](scripts/duplicati-mysql-backup). ```bash -#/etc/default/duplicati-mysql MYSQL_HOST="mysqlserver" MYSQL_USER="msqluser" MYSQL_PASSWORD="msqlpassord" @@ -63,14 +57,13 @@ Example: ### Docker log - Add [script](docker/scripts/dockerlog) to default settings. Example: --run-script-after=dockerlog ### Environment Variables -Source: https://github.com/duplicati/duplicati/blob/master/Duplicati/Library/Modules/Builtin/run-script-example.sh_ +Source: _ - DUPLICATI__EVENTNAME diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..0690438 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,17 @@ +FROM duplicati/duplicati +RUN apt update && \ +apt install -y default-mysql-client && \ +rm -rf /var/lib/apt/lists/* + +#repo root scripts +COPY /docker/scripts /usr/local/bin + +#docker scripts +COPY ./scripts /usr/local/bin + +RUN \ +chmod +x /usr/local/bin/duplicati-influxdb-notify; \ +chmod +x /usr/local/bin/duplicati-mysql-backup; \ +chmod +x /usr/local/bin/dockerlog + +EXPOSE 8200 \ No newline at end of file diff --git a/docker/mysqlclient/README.md b/docker/README.md similarity index 79% rename from docker/mysqlclient/README.md rename to docker/README.md index 51fb86a..b36aa03 100644 --- a/docker/mysqlclient/README.md +++ b/docker/README.md @@ -32,12 +32,3 @@ volumes: db-dumps: ``` -## Development - -### Docker Build - -```bash - -#Executed on repository root folder -docker build -t duplicati-mysqlclient:latest -f docker/mysqlclient/Dockerfile . -``` diff --git a/docker/mysqlclient/Dockerfile b/docker/mysqlclient/Dockerfile deleted file mode 100644 index 8b52ff4..0000000 --- a/docker/mysqlclient/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ - -FROM duplicati/duplicati -RUN apt update && apt install -y default-mysql-client && rm -rf /var/lib/apt/lists/* - -COPY ../../ /app -RUN ls ./app - -COPY ../../docker/scripts /usr/local/bin -COPY ./scripts /usr/local/bin - -RUN chmod +x /usr/local/bin/duplicati-influxdb-notify -RUN chmod +x /usr/local/bin/duplicati-mysql-backup -RUN chmod +x /usr/local/bin/dockerlog - -EXPOSE 8200 \ No newline at end of file