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();