diff --git a/test-infra/camel-test-infra-common/src/main/java/org/apache/camel/test/infra/common/services/ContainerEnvironmentUtil.java b/test-infra/camel-test-infra-common/src/main/java/org/apache/camel/test/infra/common/services/ContainerEnvironmentUtil.java index 689e6ef7fb67c..69cdf3a32ba84 100644 --- a/test-infra/camel-test-infra-common/src/main/java/org/apache/camel/test/infra/common/services/ContainerEnvironmentUtil.java +++ b/test-infra/camel-test-infra-common/src/main/java/org/apache/camel/test/infra/common/services/ContainerEnvironmentUtil.java @@ -21,6 +21,7 @@ import java.util.Arrays; import java.util.List; import java.util.Objects; +import java.util.concurrent.atomic.AtomicInteger; import com.github.dockerjava.api.model.Version; import com.github.dockerjava.api.model.VersionComponent; @@ -35,6 +36,7 @@ public final class ContainerEnvironmentUtil { public static final String INFRA_PORT_PROPERTY = "camel.infra.port"; public static final String INFRA_FIXED_PORT_PROPERTY = "camel.infra.fixedPort"; private static final Logger LOG = LoggerFactory.getLogger(ContainerEnvironmentUtil.class); + private static final AtomicInteger INSTANCE_COUNTER = new AtomicInteger(0); private static boolean dockerAvailable; private static boolean environmentCheckState; @@ -114,6 +116,11 @@ public static String containerName(Class cls) { if (annotation.serviceImplementationAlias().length > 0) { name += "-" + annotation.serviceImplementationAlias()[0]; } + // In fixed port mode (camel infra run), use clean names for docker exec usability + // Otherwise, append PID + counter for cross-JVM and within-JVM uniqueness + if (!Boolean.parseBoolean(System.getProperty(INFRA_FIXED_PORT_PROPERTY, "false"))) { + name += "-" + ProcessHandle.current().pid() + "-" + INSTANCE_COUNTER.incrementAndGet(); + } } else { LOG.warn("InfraService annotation not Found to determine container name alias."); } diff --git a/test-infra/camel-test-infra-rocketmq/src/main/java/org/apache/camel/test/infra/rocketmq/services/RocketMQNameserverContainer.java b/test-infra/camel-test-infra-rocketmq/src/main/java/org/apache/camel/test/infra/rocketmq/services/RocketMQNameserverContainer.java index a0b7aaaef8372..e3fcf19fcdc17 100644 --- a/test-infra/camel-test-infra-rocketmq/src/main/java/org/apache/camel/test/infra/rocketmq/services/RocketMQNameserverContainer.java +++ b/test-infra/camel-test-infra-rocketmq/src/main/java/org/apache/camel/test/infra/rocketmq/services/RocketMQNameserverContainer.java @@ -32,7 +32,6 @@ public RocketMQNameserverContainer(Network network) { addExposedPort(RocketMQProperties.ROCKETMQ_NAMESRV_PORT); withTmpFs(Collections.singletonMap("/home/rocketmq/logs", "rw")); withCommand("sh", "mqnamesrv"); - withCreateContainerCmdModifier(cmd -> cmd.withName("nameserver")); waitingFor(Wait.forListeningPort()); }