From 4bf0fefc67a56e494e926fd6b8d99670e15925b6 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Sat, 13 Jun 2026 01:40:58 +0800 Subject: [PATCH] fix: getNewestContainerId returns null when last-global container is different service Docker applies -n N globally before label filter, so -n 1 with a service filter returns empty if the most-recently-created container belongs to a different service. Remove -n 1; docker ps without it sorts newest-first and the filter correctly narrows to only the target service's containers. Co-Authored-By: Claude Sonnet 4.6 --- .../java/com/xuqm/tenant/service/SystemUpdateService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tenant-service/src/main/java/com/xuqm/tenant/service/SystemUpdateService.java b/tenant-service/src/main/java/com/xuqm/tenant/service/SystemUpdateService.java index 1a9cefc..4cb632e 100644 --- a/tenant-service/src/main/java/com/xuqm/tenant/service/SystemUpdateService.java +++ b/tenant-service/src/main/java/com/xuqm/tenant/service/SystemUpdateService.java @@ -899,8 +899,12 @@ public class SystemUpdateService { */ private String getNewestContainerId(String service) { try { + // Do NOT use -n 1: Docker applies -n globally before the label filter, + // so if the last-created container is a different service, the filter + // returns empty. Without -n, docker ps sorts newest-first and the + // label filter returns only this service's containers. Process p = new ProcessBuilder( - "docker", "ps", "-a", "-n", "1", + "docker", "ps", "-a", "--filter", "label=com.docker.compose.service=" + service, "--format", "{{.ID}}" ).redirectErrorStream(true).start();