DrydockDrydock
Updates

Updates

This update adds skip/snooze controls per container to reduce noisy repeated notifications for known-bad versions.

Per-container Update Policy (February 9, 2026)

This update adds skip/snooze controls per container to reduce noisy repeated notifications for known-bad versions.

What changed

  • Added container-level update policy in store:
    • skipTags
    • skipDigests
    • snoozeUntil
  • Added API endpoint:
    • PATCH /api/containers/:id/update-policy
    • Actions: skip-current, clear-skips, snooze, unsnooze, clear
  • Added UI controls on container cards:
    • Skip current update
    • Snooze for 1/7/30 days
    • Clear snooze or all policy

Behavior

  • updateKind still reflects the detected remote update.
  • updateAvailable is suppressed while policy applies (skip/snooze), and becomes true again when a new unmatched version/digest is detected or snooze expires.

Trigger Coordination Improvements (February 9, 2026)

This update improves how triggers can be coordinated when they share the same trigger name (for example docker.update and discord.update).

What changed

1. Trigger execution ordering

You can now control trigger execution order with:

DD_TRIGGER_{trigger_type}_{trigger_name}_ORDER

  • Lower values run first
  • Default is 100
  • If two triggers have the same ORDER, they are sorted by trigger id

Example:

DD_TRIGGER_DOCKER_UPDATE_ORDER=10
DD_TRIGGER_DISCORD_UPDATE_ORDER=20

This ensures the Docker update trigger runs before the Discord notification trigger for the same update event.

2. Trigger name aliases in container labels

Container labels dd.trigger.include and dd.trigger.exclude now accept either:

  • full trigger id (docker.update)
  • trigger name alias (update)

Example:

dd.trigger.exclude=update

This applies to all triggers named update (for example docker.update, discord.update).

3. Shared threshold by trigger name

Triggers sharing the same trigger name can share THRESHOLD automatically:

  • if exactly one threshold value is explicitly set among same-name triggers, that value is inherited by the others
  • if multiple different threshold values are set, no inheritance is applied

Example:

DD_TRIGGER_DOCKER_UPDATE_THRESHOLD=minor

With no explicit Discord threshold, discord.update inherits minor.

DD_TRIGGER_DOCKER_UPDATE_THRESHOLD=minor
DD_TRIGGER_DOCKER_UPDATE_ORDER=10
DD_TRIGGER_DOCKER_UPDATE_PRUNE=true

DD_TRIGGER_DISCORD_UPDATE_ORDER=20
DD_TRIGGER_DISCORD_UPDATE_URL=<discord_webhook_url>
DD_TRIGGER_DISCORD_UPDATE_SIMPLETITLE=Updated ${container.name}
DD_TRIGGER_DISCORD_UPDATE_SIMPLEBODY=Container ${container.name} has been updated from ${container.updateKind.localValue} to ${container.updateKind.remoteValue}

On this page