From fd8260ca534d0bc40ae3005bc588074f14307f14 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Thu, 20 Nov 2025 01:41:43 +0700 Subject: [PATCH 1/2] [grid] Update container label `compose.oneoff` in Dynamic Grid Signed-off-by: Viet Nguyen Duc --- .../openqa/selenium/grid/node/docker/DockerSessionFactory.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/src/org/openqa/selenium/grid/node/docker/DockerSessionFactory.java b/java/src/org/openqa/selenium/grid/node/docker/DockerSessionFactory.java index cf7968e573d14..0fd2869b3eeed 100644 --- a/java/src/org/openqa/selenium/grid/node/docker/DockerSessionFactory.java +++ b/java/src/org/openqa/selenium/grid/node/docker/DockerSessionFactory.java @@ -142,6 +142,8 @@ public DockerSessionFactory( this.hostConfig = Require.nonNull("Container host config", hostConfig); this.hostConfigKeys = Require.nonNull("Browser container host config keys", hostConfigKeys); this.composeLabels = Require.nonNull("Docker Compose labels", composeLabels); + // Merge compose labels with oneoff=False to prevent triggering --exit-code-from dynamic grid + this.composeLabels.put("com.docker.compose.oneoff", "False"); } @Override From f7e0af3d728d369aa853da58e545f5fde7059086 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Thu, 20 Nov 2025 02:28:38 +0700 Subject: [PATCH 2/2] Fix review comment Signed-off-by: Viet Nguyen Duc --- .../selenium/grid/node/docker/DockerSessionFactory.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/java/src/org/openqa/selenium/grid/node/docker/DockerSessionFactory.java b/java/src/org/openqa/selenium/grid/node/docker/DockerSessionFactory.java index 0fd2869b3eeed..0fab6badba53e 100644 --- a/java/src/org/openqa/selenium/grid/node/docker/DockerSessionFactory.java +++ b/java/src/org/openqa/selenium/grid/node/docker/DockerSessionFactory.java @@ -141,9 +141,11 @@ public DockerSessionFactory( this.predicate = Require.nonNull("Accepted capabilities predicate", predicate); this.hostConfig = Require.nonNull("Container host config", hostConfig); this.hostConfigKeys = Require.nonNull("Browser container host config keys", hostConfigKeys); - this.composeLabels = Require.nonNull("Docker Compose labels", composeLabels); // Merge compose labels with oneoff=False to prevent triggering --exit-code-from dynamic grid - this.composeLabels.put("com.docker.compose.oneoff", "False"); + Map allLabels = + new HashMap<>(Require.nonNull("Docker Compose labels", composeLabels)); + allLabels.put("com.docker.compose.oneoff", "False"); + this.composeLabels = Collections.unmodifiableMap(allLabels); } @Override