Skip to content

fix(docker): filter ghost containers from WebGUI#2611

Merged
limetech merged 1 commit into
7.2from
codex/7.2-filter-docker-ghost-containers
Apr 14, 2026
Merged

fix(docker): filter ghost containers from WebGUI#2611
limetech merged 1 commit into
7.2from
codex/7.2-filter-docker-ghost-containers

Conversation

@elibosley
Copy link
Copy Markdown
Member

Summary

Why

Docker engine/containerd shutdown races can leave orphaned dead container metadata. Those entries can appear as ghost rows in docker ps -a and in the WebGUI, but users cannot act on them from the UI.

References

Test plan

  • php -l emhttp/plugins/dynamix.docker.manager/include/DockerClient.php
  • git diff --check origin/7.2...HEAD

- Purpose: backport the Docker ghost/dead container filtering change to the 7.2 release branch.

- Before: stale dead Docker entries could be included in the WebGUI container list and inspect failures could leak bad rows into the UI.

- Problem: Docker shutdown races can leave orphaned metadata that users cannot act on, which makes the Docker page show ghost containers.

- Change: skip invalid, dead, and uninspectable container entries while preserving normal container listing behavior.

- How: validate each container record before inspect, skip dead state/status rows, skip failed inspect payloads, and fall back to the list name when inspect omits Name.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 12, 2026

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

Run ID: f1089108-c75a-4a3c-8dec-a6ce24a93228

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/7.2-filter-docker-ghost-containers

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

@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.04.12.0940
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-2611/webgui-pr-2611.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

🔄 To Remove:

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

plugin remove webgui-pr-2611

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

@limetech limetech merged commit 254ed23 into 7.2 Apr 14, 2026
2 checks passed
@limetech limetech deleted the codex/7.2-filter-docker-ghost-containers branch April 14, 2026 18:03
@github-actions
Copy link
Copy Markdown

🧹 PR Test Plugin Cleaned Up

The test plugin and associated files for this PR have been removed from the preview environment.


🤖 This comment is automatically generated when a PR is closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants