From eba053e6399fd12be6f532f6e5063d7b56e4aba7 Mon Sep 17 00:00:00 2001 From: Payal Lenka Date: Sun, 1 Nov 2026 19:06:09 +0530 Subject: [PATCH] Support Solr 10 in SolrContainer Solr 10.1 rejects `-DzkRun` without a value, so SolrCloud mode fails with "invalid boolean value". Use its replacement, `solr.zookeeper.server.enabled`, for Solr 10 and later. Solr 10 also starts in cloud mode by default, so `withZookeeper(false)` no longer gave a standalone instance. Pass `--user-managed` there. Fixes #12147 Co-Authored-By: Claude Opus 5.5 --- .../main/java/org/testcontainers/solr/SolrContainer.java | 9 ++++++++- .../java/org/testcontainers/solr/SolrContainerTest.java | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/solr/src/main/java/org/testcontainers/solr/SolrContainer.java b/modules/solr/src/main/java/org/testcontainers/solr/SolrContainer.java index 536afa69dfd..28b47172ec3 100644 --- a/modules/solr/src/main/java/org/testcontainers/solr/SolrContainer.java +++ b/modules/solr/src/main/java/org/testcontainers/solr/SolrContainer.java @@ -96,13 +96,20 @@ protected void configure() { } // Generate Command Builder String command = "solr start -f"; + // Solr 10 starts in cloud mode by default + if (this.imageVersion.isGreaterThanOrEqualTo("10.0.0")) { + command = "solr start -f --user-managed"; + } // Add Default Ports addExposedPort(SOLR_PORT); // Configure Zookeeper if (configuration.isZookeeper()) { addExposedPort(ZOOKEEPER_PORT); - if (this.imageVersion.isGreaterThanOrEqualTo("9.7.0")) { + if (this.imageVersion.isGreaterThanOrEqualTo("10.0.0")) { + // zkRun is deprecated and no longer accepted without a value since Solr 10.1 + command = "-Dsolr.zookeeper.server.enabled=true --host localhost"; + } else if (this.imageVersion.isGreaterThanOrEqualTo("9.7.0")) { command = "-DzkRun --host localhost"; } else { command = "-DzkRun -h localhost"; diff --git a/modules/solr/src/test/java/org/testcontainers/solr/SolrContainerTest.java b/modules/solr/src/test/java/org/testcontainers/solr/SolrContainerTest.java index f63c4d38164..542069d431a 100644 --- a/modules/solr/src/test/java/org/testcontainers/solr/SolrContainerTest.java +++ b/modules/solr/src/test/java/org/testcontainers/solr/SolrContainerTest.java @@ -17,7 +17,7 @@ class SolrContainerTest { private SolrClient client = null; public static String[] getVersionsToTest() { - return new String[] { "solr:8.11.4", "solr:9.8.0" }; + return new String[] { "solr:8.11.4", "solr:9.8.0", "solr:10.1.0" }; } @AfterEach