From 7f1d231b4772b4acca79df4ba1e21da6a99c3044 Mon Sep 17 00:00:00 2001 From: devsuyash-Hq Date: Wed, 12 Aug 2026 01:12:18 +0530 Subject: [PATCH] Fix MongoDBContainer default wait strategy for init scripts (#3066) --- .../testcontainers/mongodb/MongoDBContainer.java | 2 ++ .../mongodb/MongoDBContainerTest.java | 15 +++++++++++++++ modules/mongodb/src/test/resources/mongo-init.js | 3 +++ 3 files changed, 20 insertions(+) create mode 100644 modules/mongodb/src/test/resources/mongo-init.js diff --git a/modules/mongodb/src/main/java/org/testcontainers/mongodb/MongoDBContainer.java b/modules/mongodb/src/main/java/org/testcontainers/mongodb/MongoDBContainer.java index c61be6675ba..3da75d58968 100644 --- a/modules/mongodb/src/main/java/org/testcontainers/mongodb/MongoDBContainer.java +++ b/modules/mongodb/src/main/java/org/testcontainers/mongodb/MongoDBContainer.java @@ -54,6 +54,8 @@ public MongoDBContainer(DockerImageName dockerImageName) { dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME, COMMUNITY_SERVER_IMAGE, ENTERPRISE_SERVER_IMAGE); withExposedPorts(MONGODB_INTERNAL_PORT); + + waitingFor(Wait.forLogMessage("(?i).*waiting for connections.*", 1)); } @Override diff --git a/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBContainerTest.java b/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBContainerTest.java index 816243d769e..59262f8e4de 100644 --- a/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBContainerTest.java +++ b/modules/mongodb/src/test/java/org/testcontainers/mongodb/MongoDBContainerTest.java @@ -1,6 +1,7 @@ package org.testcontainers.mongodb; import org.junit.jupiter.api.Test; +import org.testcontainers.utility.MountableFile; import static org.assertj.core.api.Assertions.assertThat; @@ -38,4 +39,18 @@ void shouldTestDatabaseName() { assertThat(mongoDBContainer.getReplicaSetUrl(databaseName)).endsWith(databaseName); } } + + @Test + void shouldStartWithInitScript() { + try ( + MongoDBContainer mongoDBContainer = new MongoDBContainer("mongo:6.0") + .withCopyFileToContainer( + MountableFile.forClasspathResource("mongo-init.js"), + "/docker-entrypoint-initdb.d/mongo-init.js" + ) + ) { + mongoDBContainer.start(); + System.out.println("Container started successfully: " + mongoDBContainer.getConnectionString()); + } + } } diff --git a/modules/mongodb/src/test/resources/mongo-init.js b/modules/mongodb/src/test/resources/mongo-init.js new file mode 100644 index 00000000000..806d35e69c8 --- /dev/null +++ b/modules/mongodb/src/test/resources/mongo-init.js @@ -0,0 +1,3 @@ +db = db.getSiblingDB('testdb'); +db.createCollection('testcollection'); +db.testcollection.insertOne({ message: 'init script ran' });