Skip to content

v2.0.0 — archive volume auto-mount

Choose a tag to compare

@ekho ekho released this 04 Jul 08:10
a93c693

Highlights

🔌 Automatic file-backup volume mounting

Models with gobackup.archive.includes now work with zero manual volume wiring. The supervisor discovers the source container's volumes, rewrites the archive paths to /volumes/<model>/…, and recreates the gobackup container with those volumes mounted read-only — while preserving its config/backups/state mounts.

The recreated container's spec (image, command, networks, env, labels) is controlled by gobackup_container.* labels on the supervisor itself.

🧩 Array-typed label fields

Comma-separated label values are converted to real YAML arrays for every array field in gobackup's schema — archive.includes/excludes, databases.*.tables, exclude_tables, exclude_tables_prefix, skip_databases, endpoints — while identifier/secret-like fields (e.g. to, credentials, args) correctly stay strings.

⚠️ Behavior change (why 2.0)

The supervisor now recreates the gobackup container to attach archive volumes. Requirements:

  • the gobackup container must carry the label gobackup-docker.component: "gobackup";
  • the supervisor needs the Docker socket mounted (:ro is sufficient);
  • gobackup_container.command must be the full argv (the stock image has no ENTRYPOINT).

Notes

  • Multi-arch image: ghcr.io/ekho/gobackup-docker:v2.0.0 (linux/amd64 + linux/arm64).
  • Verified end-to-end (spike/e2e-mount/): app volume auto-mounted, archive contains the file, single recreate (no thrash).
  • Details: README + docs/ARCHITECTURE.md §5.7–5.8.