Skip to content

fix: backport shared default docker icon fix to 7.3 - #2708

Open
Eli Bosley (elibosley) wants to merge 1 commit into
unraid:7.3from
elibosley:feature/os-628-backport-dont-delete-shared-default-docker-icon-questionpng
Open

fix: backport shared default docker icon fix to 7.3#2708
Eli Bosley (elibosley) wants to merge 1 commit into
unraid:7.3from
elibosley:feature/os-628-backport-dont-delete-shared-default-docker-icon-questionpng

Conversation

@elibosley

Copy link
Copy Markdown
Member

Summary

Backport of #2693 (chodeus (@chodeus), fixes #2691) into the 7.3 release branch for the 7.3.3 patch release. Clean cherry-pick, no conflicts — 7.3 and master were identical at these two files.

Docker manager records the shared fallback icon /plugins/dynamix.docker.manager/images/question.png for icon-less containers, then removeContainer() unlinks it whenever such a container is removed or updated (e.g. via CA Docker Auto-Update). Once the file is gone, every icon-less container's onerror fallback re-requests it in a tight loop until the next reboot — this is what's generating the nginx log spam reported in the forums and increasingly on Discord.

Changes

Identical to #2693:

  • DockerClient.php (removeContainer()) — skip the icon unlink when the recorded icon is the shared default. Per-container cached icons (<name>-icon.png) are still cleaned up as before.
  • DockerContainers.php — quote the onerror attribute and guard it with this.onerror=null, so a missing fallback costs one failed request per image instead of an endless 404 retry loop.

Testing

Related to OS-628

…n-less container

Containers with no template icon get /plugins/dynamix.docker.manager/images/question.png
recorded as their icon in the webui-info registry (DockerClient.php L346). removeContainer()
then unlinks that recorded path when cache flags are set, deleting the shared fallback from
the docroot for the whole system until the next reboot. CA Docker Auto-Update triggers this
whenever it updates an icon-less container.

Also quote and guard the container-list onerror fallback (this.onerror=null) so a missing
fallback degrades to one failed request per image instead of an endless 404 retry loop.

Fixes unraid#2691

(cherry picked from commit 6f28eb6)
@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 88e4449a-be20-4ba6-9647-456dc7ee15c7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

🔧 PR Test Plugin Available

A test plugin has been generated for this PR that includes the modified files.

Version: 2026.07.29.2242
Build: View Workflow Run

📥 Installation Instructions:

Install via Unraid Web UI:

  1. Go to Plugins → Install Plugin
  2. Copy and paste this URL:
https://preview.dl.unraid.net/pr-plugins/pr-2708/webgui-pr-2708.plg
  1. Click Install

Alternative: Direct Download

⚠️ Important Notes:

  • Testing only: This plugin is for testing PR changes
  • Backup included: Original files are automatically backed up
  • Easy removal: Files are restored when plugin is removed
  • Conflicts: Remove this plugin before installing production updates
  • Post-merge behavior: This preview stays available after merge until preview storage expires or it is manually cleaned up

📝 Modified Files:

Click to expand file list
emhttp/plugins/dynamix.docker.manager/include/DockerClient.php
emhttp/plugins/dynamix.docker.manager/include/DockerContainers.php

🔄 To Remove:

Navigate to Plugins → Installed Plugins and remove webgui-pr-2708, or run:

plugin remove webgui-pr-2708

🤖 This comment is automatically generated and will be updated with each new push to this PR.

@unraid-bot Unraid Bot (unraid-bot) added 7.3.3 Approved for release 7.3.3 (auto-managed by notification-worker) labels Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

7.3.3 Approved for release 7.3.3 (auto-managed by notification-worker)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants