Dockerized service to backup all running database containers

Overview

Docker Database Backup

Source Checks Release Last Commit License

Dockerized service to automatically backup all of your database containers.

Docker Image Tags:

Supported Architectures: amd64, arm64, arm/v6, arm/v7

Service Configuration

Configure the backup service by specifying environment variables:

Name Default Description
TZ UTC Time Zone for scheduling and log messages
SCHEDULE (none) Specify a cron expression or an interval (number of seconds to wait between backup cycles). Leave undefined to make a one time run. See Croniter Documentation for cron options.
SCHEDULE_HASH_ID (none) Seed for hashed components in cron expressions. If not defined, the hostname of the container is used.
RUN_AT_STARTUP (none) Do a backup right after the backup service starts. If not defined, it is enabled when using an interval as schedule, and disabled when using cron expressions. Not used, if no schedule is defined.
DUMP_UID -1 UID of dump files. -1 means default (docker executing user)
DUMP_GID -1 GID of dump files. -1 means default (docker executing user)
HEALTHCHECKS_IO_URL (none) Base Url for Healthchecks.io integration
DEBUG false More verbose output for debugging
DOCKER_NETWORK_NAME database-backup Prefix for the name of the internal network, that is used to connect to the database containers.
DOCKER_TARGET_NAME database-backup-target Prefix for the name of the internal hostname, that is used to connect to the database containers.
INSTANCE_ID default Unique ID of each backup service instance. Must only be specified if more than one instance should be run on the same docker engine. If you change the value of INSTANCE_ID, the backup service container also needs a label jan-di.database-backup.instance_id with the same value, to allow it to find itself via the docker API.

You can also define global default values for all container specific labels. Do this by prepending the label name by GLOBAL_. For example, to provide a default username, you can set a default value for jan-di.database-backup.username by specifying the environment variable GLOBAL_USERNAME. See next chapter for reference.

Database Configuration

Configure each database container by specifying labels. Every label must be prefixed by jan-di.database-backup.:

Name Default Description
enable false Enable backup for this container
type auto Specify type of database. Possible values: auto, mysql, mariadb, postgres. Auto tries to get the type from the image name (for specific well known images)
username root Login user
password (none) Login password
port auto Port (inside container). Possible values: auto or a valid port number. Auto gets the default port corresponding to the type.
compress false Compress SQL Dump with gzip
compression_level 6 Gzip compression level (1-9)
encrypt false Encrypt SQL Dump with AES
encryption_key (none) Key/Passphrase used to encrypt
retention_policy none Type of retention policy used to cleanup dump files. Possible values: none, simple, all See below for more info.
retention_min_count auto Backups below this count will be kept, ignoring the max constraints. auto sets the value based on retention_policy
retention_min_age auto Backups below this age will be kept, ignoring max constraints. See Tempora Documentation for possible values. auto sets the value based on retention_policy
retention_max_count auto Backups above this count will be deleted. auto sets the value based on retention_policy. Value 0 means no limit.
retention_max_age auto Backups above this age will be deleted. See retention_min_age for possible values. auto sets the value based on retention_policy. Value 0s means no limit.
dump_name (none) Overwrite the base name of the dump file. If not defined, the container name is used.
dump_timestamp auto Append timestamp to dump file (Format: _YYYY-MM-DD_hh-mm-ss). Default value depends on the used retention policy.

Database Type

The database type is automatically resolved by checking the image tag. If the image is is not a well known image, you can provide the database type manually.

Type Description Related Options / Default Values
mysql MySQL port=3306
mariadb MariaDB port=3306
postgres Postgres port=5432

Retention Policy

You can choose one of the following retention policies for each container. All default values of the retention policy can be overriden manually.

Policy Description Related Options / Default Values
none (default) Only the newest dump file per database will be kept. Timestamps are deactivated by default. dump_timestamps=false, retention_min_count=1, retention_min_age=0s, retention_max_count=1, retention_max_age="0s"
simple Dump files will be kept/deleted according to count and age. dump_timestamps=true, retention_min_count=10, retention_min_age=0s, retention_max_count=0, retention_max_age="1 month"
all All dump files are being kept. dump_timestamps=true, retention_min_count=1, retention_min_age="0s", retention_max_count=0, retention_max_age="0s"

Example

Example docker-compose.yml:

version: '3.8'

services:
  db-backup: # backup service
    image: ghcr.io/jan-di/database-backup
    environment:
      - TZ=Europe/Berlin
      - SCHEDULE=600
      - GLOBAL_PASSWORD=secret-password
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  database1: # well known database image
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=secret-password
    labels:
      - jan-di.database-backup.enable=true

  database2: # custom database image
    image: user/my-database:latest
    environment:
      - DB_PASSWORD=secret-password
    labels:
      - jan-di.database-backup.enable=true
      - jan-di.database-backup.type=postgres
      - jan-di.database-backup.password=other-password

Credits

Comments
  • Timestamps in backup filenames

    Timestamps in backup filenames

    Hi, thanks for the awesome tool! I've added it to a Docker Compose cluster I'm running - it's great to have automatic backups 😀

    I was wondering what you thought of the following feature request:

    Add a config option that appends a timestamp to the backup filename. This would allow multiple backups to be written out from a service and remove the need for another tool to rename the files before archiving them.

    I think it makes most sense for the config option to be at the database level rather than global, so it could be set for some databases and not others.

    e.g.

    # Minimal Docker Compose usage example
    version: '3.8'
    
    services:
      db-backup: # backup service
        image: ghcr.io/jan-di/database-backup
        environment:
          - TZ=Europe/Berlin
          - SCHEDULE=600
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
    
      database1: # well known database image
        image: mariadb:latest
        environment:
          - MYSQL_ROOT_PASSWORD=secret-password
        labels:
          - jan-di.database-backup.enable=true
          - jan-di.database-backup.dump_timestamp=true <-- This bit is new.
    

    Output;

    • /dump/database1_2021-10-30T14:35:40+00:00.sql (ISO 8601)

    Would this be something that you'd be interested in adding to this tool? If so I'm happy to have a hack at implementing it (but don't want to step on your toes!)

    enhancement 
    opened by silic0nalph4 5
  • Bump humanize from 4.2.3 to 4.3.0

    Bump humanize from 4.2.3 to 4.3.0

    Bumps humanize from 4.2.3 to 4.3.0.

    Release notes

    Sourced from humanize's releases.

    4.3.0

    Added

    Fixed

    Commits
    • dab62bf Merge pull request #46 from waseigo/el_GR-translation
    • 01bca3d Greek translation
    • bbc18e8 Merge pull request #45 from python-humanize/renovate/mkdocs-1.x
    • 9756d6b Update dependency mkdocs to v1.3.1
    • a7f4928 Merge pull request #44 from kianmeng/fix-markdown-issues-and-typo
    • caa11fc Fix markdown issue and typo
    • 22198b1 Merge pull request #43 from dejurin/main
    • fef2fe1 add thousand, fix big numbers
    • e705e43 Merge pull request #41 from vishket/update-intword
    • 4c76d35 refactor
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 4
  • Bump library/python from 3.9.7-bullseye to 3.10.0-bullseye

    Bump library/python from 3.9.7-bullseye to 3.10.0-bullseye

    Bumps library/python from 3.9.7-bullseye to 3.10.0-bullseye.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies docker 
    opened by dependabot[bot] 2
  • Bump python from 3.9.7-bullseye to 3.10.0-bullseye

    Bump python from 3.9.7-bullseye to 3.10.0-bullseye

    Bumps python from 3.9.7-bullseye to 3.10.0-bullseye.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies docker 
    opened by dependabot[bot] 2
  • Bump docker from 5.0.3 to 6.0.0

    Bump docker from 5.0.3 to 6.0.0

    Bumps docker from 5.0.3 to 6.0.0.

    Release notes

    Sourced from docker's releases.

    6.0.0

    ℹ️ Upgrade Notes

    • Minimum supported Python version is 3.7+
    • When installing with pip, the docker[tls] extra is deprecated and a no-op, use docker for same functionality (TLS support is always available now)
    • Native Python SSH client (used by default / use_ssh_client=False) will now reject unknown host keys with paramiko.ssh_exception.SSHException
    • Short IDs are now 12 characters instead of 10 characters (same as Docker CLI)
    • Version metadata is now exposed as __version__

    ✨ Features

    • Python 3.10 support
    • Automatically negotiate most secure TLS version
    • Add platform (e.g. linux/amd64, darwin/arm64) to container create & run
    • Add support for GlobalJob and ReplicatedJobs for Swarm
    • Add remove() method on Image
    • Add force param to disable() on Plugin

    🐛 Bugfixes

    • Fix install issues on Windows related to pywin32
    • Do not accept unknown SSH host keys in native Python SSH mode
    • Use 12 character short IDs for consistency with Docker CLI
    • Ignore trailing whitespace in .dockerignore files
    • Fix IPv6 host parsing when explicit port specified
    • Fix ProxyCommand option for SSH connections
    • Do not spawn extra subshell when launching external SSH client
    • Improve exception semantics to preserve context
    • Documentation improvements (formatting, examples, typos, missing params)

    🔧 Miscellaneous

    • Upgrade dependencies in requirements.txt to latest versions
    • Remove extraneous transitive dependencies
    • Eliminate usages of deprecated functions/methods
    • Test suite reliability improvements
    • GitHub Actions workflows for linting, unit tests, integration tests, and publishing releases

    Changelog

    ... (truncated)

    Commits
    • e901eac test: add additional tests for cgroupns option (#3024)
    • fc86ab0 swarm: add support for DataPathPort on init (#2987)
    • 45bf9f9 Merge remote-tracking branch 'upstream/main' into patch-1
    • c03aeb6 Merge remote-tracking branch 'upstream/main' into connect-with-mac
    • 58aa62b swarm: add sysctl support for services (#3029)
    • ff0b4ac docs: add changelog for 6.0.0 (#3019)
    • 6640243 Support global-job and replicated-job modes in Docker Swarm (#3016)
    • 4278981 credentials: eliminate distutils deprecation warnings (#3028)
    • ab5e927 lint: remove extraneous logic for preexec_func (#2920)
    • b7daa52 docs: add gzip arg to BuildApiMixin (#2929)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • Bump humanize from 4.1.0 to 4.2.1

    Bump humanize from 4.1.0 to 4.2.1

    Bumps humanize from 4.1.0 to 4.2.1.

    Release notes

    Sourced from humanize's releases.

    4.2.1

    Fixed

    4.2.0

    Added

    Fixed

    Commits
    • 3ddae94 Merge pull request #27 from hugovk/rename-ar_SA-to-ar
    • f7d4130 Rename Arabic locale from ar_SA to ar to enable fallbacks
    • 6871118 Merge pull request #23 from carterbox/intcomma-translation
    • e34f1cc [pre-commit.ci] auto fixes from pre-commit.com hooks
    • cfdfb81 TST: Add translation test for naturaldelta
    • 0e6ef5a Merge pull request #26 from hugovk/fix-intcomma-ndigits-0
    • 03863fe Fix intcomma with ndigits=0
    • 6c1d0c7 BUG: Use %d for year translations convert to string for intcomma after
    • 29d37fb Merge pull request #22 from bwoodsend/metric
    • 19726a0 Add humanize.metric() for converting big/small numbers to SI units.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • Bump humanize from 4.1.0 to 4.2.0

    Bump humanize from 4.1.0 to 4.2.0

    Bumps humanize from 4.1.0 to 4.2.0.

    Release notes

    Sourced from humanize's releases.

    4.2.0

    Added

    Fixed

    Commits
    • 29d37fb Merge pull request #22 from bwoodsend/metric
    • 19726a0 Add humanize.metric() for converting big/small numbers to SI units.
    • 43ebe21 Fix scientific() on small positive numbers.
    • 7688f20 Merge pull request #15 from hugovk/typing
    • f550e98 Fix GHA caching
    • 5641b0e Fix WARNING - griffe: humanize/time.py:104: Parameter 'when' does not appea...
    • dfc69cb Use the new experimental handler instead of the legacy one to fix typing bug
    • 54af2f9 Replace 'int | float' with 'float'
    • c86b138 Replace deprecated typing.Iterable with collections.abc.Iterable
    • 0a86628 Silence PyCharm more generically
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • Bump library/python from 3.9.9-bullseye to 3.9.10-bullseye

    Bump library/python from 3.9.9-bullseye to 3.9.10-bullseye

    Bumps library/python from 3.9.9-bullseye to 3.9.10-bullseye.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies docker 
    opened by dependabot[bot] 1
  • Bump croniter from 1.1.0 to 1.2.0

    Bump croniter from 1.1.0 to 1.2.0

    Bumps croniter from 1.1.0 to 1.2.0.

    Changelog

    Sourced from croniter's changelog.

    1.2.0 (2022-01-14)

    • Enforce validation for day=1. Before this release we used to support day=0 and it was silently glided to day=1 to support having both day in day in 4th field when it came to have 6fields cron forms (second repeat). It will now raises a CroniterBadDateError. See kiorky/croniter#6 [kiorky]
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • Bump requests from 2.27.0 to 2.27.1

    Bump requests from 2.27.0 to 2.27.1

    Bumps requests from 2.27.0 to 2.27.1.

    Changelog

    Sourced from requests's changelog.

    2.27.1 (2022-01-05)

    Bugfixes

    • Fixed parsing issue that resulted in the auth component being dropped from proxy URLs. (#6028)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • Bump croniter from 1.0.15 to 1.1.0

    Bump croniter from 1.0.15 to 1.1.0

    ⚠️ Dependabot is rebasing this PR ⚠️

    Rebasing might not happen immediately, so don't worry if this takes some time.

    Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


    Bumps croniter from 1.0.15 to 1.1.0.

    Changelog

    Sourced from croniter's changelog.

    1.1.0 (2021-12-03)

    • Enforce validation for month=1. Before this release we used to support month=0 and it was silently glided to month=1 to support having both day in month in 4th field when it came to have 6fields cron forms (second repeat). It will now raises a CroniterBadDateError. See kiorky/croniter#6 [kiorky]
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • Bump library/python from 3.9.15-bullseye to 3.11.1-bullseye

    Bump library/python from 3.9.15-bullseye to 3.11.1-bullseye

    Bumps library/python from 3.9.15-bullseye to 3.11.1-bullseye.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies docker 
    opened by dependabot[bot] 0
  • Bump croniter from 1.3.7 to 1.3.8

    Bump croniter from 1.3.7 to 1.3.8

    Bumps croniter from 1.3.7 to 1.3.8.

    Changelog

    Sourced from croniter's changelog.

    1.3.8 (2022-11-22)

    • Add Python 3.11 support and move docs files to main folder [rafsaf]
    Commits
    • ddbee2c Preparing release 1.3.8
    • 4e4fb5c Merge pull request #27 from rafsaf/python-3-11-and-move-docs
    • 7447fe3 Bump actions/checkout and actions/setup-python in cicd.yml to newset versions
    • e041f64 Python 3.11 support and moved files from docs to main folder
    • 8204e09 Back to development: 1.3.8
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Bump tempora from 5.0.2 to 5.1.0

    Bump tempora from 5.0.2 to 5.1.0

    Bumps tempora from 5.0.2 to 5.1.0.

    Changelog

    Sourced from tempora's changelog.

    v5.1.0

    Introduced infer_datetime and added some type hints.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Bump docker from 5.0.3 to 6.0.1

    Bump docker from 5.0.3 to 6.0.1

    Bumps docker from 5.0.3 to 6.0.1.

    Release notes

    Sourced from docker's releases.

    6.0.1

    🐛 Bugfixes

    • Fix for The pipe has been ended errors on Windows (#3056)
    • Support floats for timestamps in Docker logs (since / until) (#3031)

    What's Changed

    New Contributors

    Full Changelog: https://github.com/docker/docker-py/compare/6.0.0...6.0.1

    6.0.0

    ℹ️ Upgrade Notes

    • Minimum supported Python version is 3.7+
    • When installing with pip, the docker[tls] extra is deprecated and a no-op, use docker for same functionality (TLS support is always available now)
    • Native Python SSH client (used by default / use_ssh_client=False) will now reject unknown host keys with paramiko.ssh_exception.SSHException
    • Short IDs are now 12 characters instead of 10 characters (same as Docker CLI)
    • Version metadata is now exposed as __version__

    ✨ Features

    • Python 3.10 support
    • Automatically negotiate most secure TLS version
    • Add platform (e.g. linux/amd64, darwin/arm64) to container create & run
    • Add support for GlobalJob and ReplicatedJobs for Swarm
    • Add remove() method on Image
    • Add force param to disable() on Plugin

    🐛 Bugfixes

    • Fix install issues on Windows related to pywin32
    • Do not accept unknown SSH host keys in native Python SSH mode
    • Use 12 character short IDs for consistency with Docker CLI
    • Ignore trailing whitespace in .dockerignore files
    • Fix IPv6 host parsing when explicit port specified
    • Fix ProxyCommand option for SSH connections
    • Do not spawn extra subshell when launching external SSH client
    • Improve exception semantics to preserve context
    • Documentation improvements (formatting, examples, typos, missing params)

    🔧 Miscellaneous

    • Upgrade dependencies in requirements.txt to latest versions
    • Remove extraneous transitive dependencies

    ... (truncated)

    Commits
    • 3002298 socket: handle npipe close on Windows (#3056)
    • bc0a5fb test: use anonymous volume for prune (#3051)
    • 923e067 api: add support for floats to docker logs params since / until (#3031)
    • 1c27ec1 ci: use latest stable syntax for Dockerfiles (#3035)
    • 2494d63 docs: install package in ReadTheDocs build (#3032)
    • e901eac test: add additional tests for cgroupns option (#3024)
    • fc86ab0 swarm: add support for DataPathPort on init (#2987)
    • 45bf9f9 Merge remote-tracking branch 'upstream/main' into patch-1
    • c03aeb6 Merge remote-tracking branch 'upstream/main' into connect-with-mac
    • 58aa62b swarm: add sysctl support for services (#3029)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • InfluxDB

    InfluxDB

    Hey, i heard that you implement feature requests very quickly! I would like to have support for InfluxDB. If you need help, have a look here, someone has already tried it. Thanks a lot! Feature complete, testing and documentation until the weekend is fast enough 👍🏻

    enhancement 
    opened by foorschtbar 0
Releases(v0.4.0)
  • v0.4.0(May 7, 2022)

    [0.4.0] - 2022-05-05

    Added

    • Open Metrics/Prometheus endpoint
    • Add grace time options to ignore errors on newly started targets

    Changed

    • Updated python version and external dependencies
    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Nov 6, 2021)

    [0.3.0] - 2021-11-06

    Added

    • Support multiple service instances on the same docker engine
    • Add retention policies to keep multiple versions of dump files.
    • Option to add a timestamp at the end of the dump file. Works also if no retention policy is used.
    • Cleanup old networks that are not removed successfully

    Changed

    • Custom dump file names now follow the same naming rules as docker containers.
    • Add generated base64 suffix to network name to prevent duplicates with docker-compose

    Removed

    • Dropped Support for i386 Architecture
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Oct 4, 2021)

    [0.2.0] - 2021-10-04

    Added

    • AES Encryption of dump files
    • Support for cron expressions as schedule.
    • Option to create a backup right after start, independent of the schedule.
    • Option to change gzip compression level. Default: 6
    • Option to overwrite the basename of the dump files
    • Options to change the internal network name/target alias

    Changed

    • Rename option INTERVAL to SCHEDULE
    • Rename option VERBOSE to DEBUG

    Fixed

    • Encapsulated user input in double quotes at dump commands
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Sep 4, 2021)

Owner
Jan Dittrich
Jan Dittrich
Caboto, the Kubernetes semantic analysis tool

Caboto Caboto, the Kubernetes semantic analysis toolkit. It contains a lightweight Python library for semantic analysis of plain Kubernetes manifests

Michael Schilonka 8 Nov 26, 2022
Quick & dirty controller to schedule Kubernetes Jobs later (once)

K8s Jobber Operator Quickly implemented Kubernetes controller to enable scheduling of Jobs at a later time. Usage: To schedule a Job later, Set .spec.

Jukka Väisänen 2 Feb 11, 2022
This repository contains useful docker-swarm-tools.

docker-swarm-tools This repository contains useful docker-swarm-tools. swarm-guardian This Docker image is intended to be used in a multihost docker e

NeuroForge GmbH & Co. KG 4 Jan 12, 2022
A little script and trick to make your heroku app run forever without being concerned about dyno hours.

A little script and trick to make your heroku app run forever without being concerned about dyno hours.

Tiararose Biezetta 152 Dec 25, 2022
A job launching library for docker, EC2, GCP, etc.

doodad A library for packaging dependencies and launching scripts (with a focus on python) on different platforms using Docker. Currently supported pl

Justin Fu 55 Aug 27, 2022
Coding For Entrepreneurs 100 Jan 01, 2023
Checkmk kube agent - Checkmk Kubernetes Cluster and Node Collectors

Checkmk Kubernetes Cluster and Node Collectors Checkmk cluster and node collecto

tribe29 GmbH 15 Dec 26, 2022
Wiremind Kubernetes helper

Wiremind Kubernetes helper This Python library is a high-level set of Kubernetes Helpers allowing either to manage individual standard Kubernetes cont

Wiremind 3 Oct 09, 2021
Repository tracking all OpenStack repositories as submodules. Mirror of code maintained at opendev.org.

OpenStack OpenStack is a collection of interoperable components that can be deployed to provide computing, networking and storage resources. Those inf

Mirrors of opendev.org/openstack 4.6k Dec 28, 2022
Knock your images before these make you painful.

image-knocker Knock your images before these make you painful. Background One day, I had run my deep learning model training program and got off work

Yonghye Kwon 9 Jul 25, 2022
Learning and experimenting with Kubernetes

Kubernetes Experiments This repository contains code that I'm using to learn and experiment with Kubernetes. 1. Environment setup minikube kubectl doc

Richard To 10 Dec 02, 2022
Dynamic DNS service

About nsupdate.info https://nsupdate.info is a free dynamic DNS service. nsupdate.info is also the name of the software used to implement it. If you l

nsupdate.info development 880 Jan 04, 2023
Autoscaling volumes for Kubernetes (with the help of Prometheus)

Kubernetes Volume Autoscaler (with Prometheus) This repository contains a service that automatically increases the size of a Persistent Volume Claim i

DevOps Nirvana 142 Dec 28, 2022
Dockerized iCloud drive

iCloud-drive-docker is a simple iCloud drive client in Docker environment. It uses pyiCloud python library to interact with iCloud

Mandar Patil 376 Jan 01, 2023
This project shows how to serve an TF based image classification model as a web service with TFServing, Docker, and Kubernetes(GKE).

Deploying ML models with CPU based TFServing, Docker, and Kubernetes By: Chansung Park and Sayak Paul This project shows how to serve a TensorFlow ima

Chansung Park 104 Dec 28, 2022
GitGoat enables DevOps and Engineering teams to test security products intending to integrate with GitHub

GitGoat is an open source tool that was built to enable DevOps and Engineering teams to design and implement a sustainable misconfiguration prevention strategy. It can be used to test with products w

Arnica 149 Dec 22, 2022
This repository contains code examples and documentation for learning how applications can be developed with Kubernetes

BigBitBus KAT Components Click on the diagram to enlarge, or follow this link for detailed documentation Introduction Welcome to the BigBitBus Kuberne

51 Oct 16, 2022
Containerize a python web application

containerize a python web application introduction this document is part of GDSC at the university of bahrain you don't need to follow along, fell fre

abdullah mosibah 1 Oct 19, 2021
A charmed operator for running PGbouncer on kubernetes.

operator-template Description TODO: Describe your charm in a few paragraphs of Markdown Usage TODO: Provide high-level usage, such as required config

Canonical 1 Dec 01, 2022
The leading native Python SSHv2 protocol library.

Paramiko Paramiko: Python SSH module Copyright: Copyright (c) 2009 Robey Pointer 8.1k Jan 04, 2023