From e22a0d26c6af33d65c96f238ced4e677d69e7369 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 8 Jul 2025 15:31:22 +0200 Subject: [PATCH] Polishing. Consider listen port in addition to shell command. See: #5013 Original pull request: #5014 --- .../data/mongodb/test/util/AtlasContainer.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/AtlasContainer.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/AtlasContainer.java index 71fecd29b..c9c23c16a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/AtlasContainer.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/AtlasContainer.java @@ -16,6 +16,9 @@ package org.springframework.data.mongodb.test.util; import org.springframework.core.env.StandardEnvironment; + +import org.testcontainers.containers.wait.strategy.Wait; +import org.testcontainers.containers.wait.strategy.WaitAllStrategy; import org.testcontainers.mongodb.MongoDBAtlasLocalContainer; import org.testcontainers.utility.DockerImageName; @@ -36,12 +39,18 @@ public class AtlasContainer extends MongoDBAtlasLocalContainer { public static final String ATLAS_HOST = "docker.mongodb.atlas.host"; public static final String ATLAS_PORT = "docker.mongodb.atlas.port"; + public static final WaitAllStrategy WAIT_STRATEGY = new WaitAllStrategy( + WaitAllStrategy.Mode.WITH_MAXIMUM_OUTER_TIMEOUT).withStrategy(Wait.forListeningPort()) + .withStrategy(Wait.forSuccessfulCommand("runner healthcheck")); + private AtlasContainer(String dockerImageName) { super(DockerImageName.parse(dockerImageName)); + this.waitingFor(WAIT_STRATEGY); } private AtlasContainer(DockerImageName dockerImageName) { super(dockerImageName); + this.waitingFor(WAIT_STRATEGY); } public static AtlasContainer bestMatch() {