diff --git a/db-auto-backup.py b/db-auto-backup.py index 768e305..3a299bd 100755 --- a/db-auto-backup.py +++ b/db-auto-backup.py @@ -162,6 +162,7 @@ def backup_redis(container: Container) -> str: SHOW_PROGRESS = sys.stdout.isatty() COMPRESSION = os.environ.get("COMPRESSION", "plain") INCLUDE_LOGS = bool(os.environ.get("INCLUDE_LOGS")) +AUTO_BACKUP_LABEL = os.environ.get("AUTO_BACKUP_LABEL", "auto-backup") def get_backup_provider(container_names: Iterable[str]) -> Optional[BackupProvider]: @@ -199,8 +200,16 @@ def backup(now: datetime) -> None: print(f"Found {len(containers)} containers.") for container in containers: - container_names = get_container_names(container) - backup_provider = get_backup_provider(container_names) + if auto_backup_label := container.labels.get(AUTO_BACKUP_LABEL): + if auto_backup_label.lower() == "false": + print(f"Skipping {container.name} because label {AUTO_BACKUP_LABEL}=false") + continue + print(f"Found explicit {AUTO_BACKUP_LABEL} label for {container.name}, using {auto_backup_label}") + backup_provider = get_backup_provider([auto_backup_label]) + else: + container_names = get_container_names(container) + backup_provider = get_backup_provider(container_names) + if backup_provider is None: continue