unraid / unraid/webgui

Docker tab keeps showing "update available" after a container is updated via the Docker API

Open Beginner friendly
#2,710 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PHP
Stars
253
Forks
106
Avg merge
6d 22h
Merged PRs (30d)
12

Description

Summary

When a container image is updated outside the Docker tab (for example via the Docker API by another tool), the Docker tab keeps showing "update available" indefinitely, and even a manual "Check for Updates" does not clear it.

Root cause

DockerUpdate::reloadUpdateStatus($image) in plugins/dynamix.docker.manager/include/DockerClient.php reads the cached local digest from /var/lib/docker/unraid-update-status.json first and only re-inspects the image when that cache entry is null. Once the tag has moved to a new digest, the cache still holds the old digest, so the status is never recomputed and the flag stays set. Seen on 7.0.1.

Steps to reproduce
  1. Install any container via the Docker tab.
  2. Update its image to a newer digest through the Docker API (not via the Docker tab).
  3. The Docker tab still shows "update available"; "Check for Updates" does not clear it.
Suggested fix

In reloadUpdateStatus, re-inspect the image when the local image digest differs from the cached one (or drop the cached entry before recompute) instead of trusting a non-null cache. In practice, unsetting the container's entry and then calling reloadUpdateStatus($image) makes Unraid re-inspect the current image and rewrite the status correctly.

Environment

Unraid 7.0.1 (reproducible whenever a container is updated out of band).

Happy to open a PR if that helps.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in plugins/dynamix.docker.manager/include/DockerClient.php at DockerUpdate::reloadUpdateStatus($image), then reproduce an out-of-band image update through the Docker API. Verify that the Docker tab clears the update flag after checking and that the status cache is rewritten for the current image digest.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, php
Domain
backend, devops
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
76/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.