github nicholas-fedor/watchtower v1.12.0

7 hours ago

Overview

This release introduces new features for enhanced lifecycle hooks, rolling restarts, and notification splitting, along with numerous bug fixes for concurrency, digest handling, and container management, plus dependency updates.

Features

  • Lifecycle Hooks Improvements:
    • Added container metadata support for pre/post-update hooks (#670).
    • Added UID and GID configuration for lifecycle hook scripts (#690).
  • Rolling Restarts: Implemented health check waiting for rolling restart operations (#671).
  • Immediate Update Checks: Added --update-on-start flag to perform an update check immediately when Watchtower starts (#672).
  • HTTP API Enhancements:
    • Enhanced the update endpoint to return structured JSON responses (#673).
    • Added support for configuring the HTTP API host (#697).
  • Podman CPU Compatibility: Introduced --cpu-copy-mode flag for improved CPU handling during container recreation with Podman (#712).
  • Notification Splitting: Added --notification-split-by-container flag to send separate notifications for each updated container (#721).

Bug Fixes

  • Self-Update Ordering: Fixed issue where Watchtower would update itself before other containers, causing notification splitting problems (#756).
  • Shutdown Handling: Corrected shutdown lock logic to prevent test timeouts (#753).
  • Concurrency Issues:
    • Resolved data race in Shoutrrr notifications (#746).
    • Prevented crashes from concurrent Docker client access (#731).
    • Fixed HTTP API failures when handling multiple simultaneous requests (#668).
  • Digest and Registry Handling:
    • Improved digest fetching with automatic fallback from HEAD to GET requests (#669, #667).
    • Enhanced self-update digest parsing for better reliability (#724).
    • Resolved Docker Distribution API manifest request issues (#728).
  • Container Management:
    • Prevented nil pointer dereference during container cleanup (#745).
    • Fixed container identification issues (#718).
    • Improved container ID retrieval for self-updates (#714).
  • Notifications and Logging:
    • Ensured report notifications are sent in monitor-only mode (#709).
    • Improved logging clarity and accuracy for different scheduling modes (#716).
  • Scope and Initialization:
    • Resolved scope isolation issues in self-updates (#666, #683).
    • Prevented dereferencing uninitialized notifier instances (#644).
  • Update Integration: Properly integrated --update-on-start with normal update cycles (#740).

Dependencies

  • Updated Docker CLI and Docker modules to v28.5.0+incompatible.
  • Updated Shoutrrr notification library to v0.10.0.
  • Updated Prometheus client library to v1.23.2.
  • Updated Viper configuration library to v1.21.0.
  • Updated Go text library to v0.29.0.

Full Changelog: v1.11.8...v1.12.0

Don't miss a new watchtower release

NewReleases is sending notifications on new releases.