From ea5e2a74349b17b5df8bb40e90c197a1aef82271 Mon Sep 17 00:00:00 2001 From: meyonsoo Date: Sun, 22 Mar 2026 21:42:35 +0900 Subject: [PATCH] fix: return mapped port from MariaDBContainer.getLivenessCheckPortNumbers MariaDBContainer.getLivenessCheckPortNumbers() returned the hardcoded internal port (3306) instead of the mapped external port. This was originally fixed for other containers in a prior PR but MariaDB was missed. The new MariaDBContainer class then copied the same buggy implementation. Delegate to super.getLivenessCheckPortNumbers() which correctly maps internal ports to external mapped ports via getMappedPort(). Applied to both: - org.testcontainers.mariadb.MariaDBContainer (current) - org.testcontainers.containers.MariaDBContainer (deprecated) --- .../org/testcontainers/containers/MariaDBContainer.java | 3 +-- .../java/org/testcontainers/mariadb/MariaDBContainer.java | 3 +-- .../org/testcontainers/mariadb/MariaDBContainerTest.java | 7 +++++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/mariadb/src/main/java/org/testcontainers/containers/MariaDBContainer.java b/modules/mariadb/src/main/java/org/testcontainers/containers/MariaDBContainer.java index 6c9ffda7722..a094cda7938 100644 --- a/modules/mariadb/src/main/java/org/testcontainers/containers/MariaDBContainer.java +++ b/modules/mariadb/src/main/java/org/testcontainers/containers/MariaDBContainer.java @@ -1,6 +1,5 @@ package org.testcontainers.containers; -import com.google.common.collect.Sets; import org.testcontainers.images.builder.Transferable; import org.testcontainers.utility.DockerImageName; @@ -57,7 +56,7 @@ public MariaDBContainer(final DockerImageName dockerImageName) { @Override public Set getLivenessCheckPortNumbers() { - return Sets.newHashSet(MARIADB_PORT); + return super.getLivenessCheckPortNumbers(); } @Override diff --git a/modules/mariadb/src/main/java/org/testcontainers/mariadb/MariaDBContainer.java b/modules/mariadb/src/main/java/org/testcontainers/mariadb/MariaDBContainer.java index 8487f4576f7..ee49b9a1f06 100644 --- a/modules/mariadb/src/main/java/org/testcontainers/mariadb/MariaDBContainer.java +++ b/modules/mariadb/src/main/java/org/testcontainers/mariadb/MariaDBContainer.java @@ -1,6 +1,5 @@ package org.testcontainers.mariadb; -import com.google.common.collect.Sets; import org.testcontainers.containers.ContainerLaunchException; import org.testcontainers.containers.JdbcDatabaseContainer; import org.testcontainers.images.builder.Transferable; @@ -50,7 +49,7 @@ public MariaDBContainer(final DockerImageName dockerImageName) { @Override public Set getLivenessCheckPortNumbers() { - return Sets.newHashSet(MARIADB_PORT); + return super.getLivenessCheckPortNumbers(); } @Override diff --git a/modules/mariadb/src/test/java/org/testcontainers/mariadb/MariaDBContainerTest.java b/modules/mariadb/src/test/java/org/testcontainers/mariadb/MariaDBContainerTest.java index 99348f9168d..341021b3ad6 100644 --- a/modules/mariadb/src/test/java/org/testcontainers/mariadb/MariaDBContainerTest.java +++ b/modules/mariadb/src/test/java/org/testcontainers/mariadb/MariaDBContainerTest.java @@ -33,6 +33,7 @@ void testSimple() throws SQLException { int resultSetInt = resultSet.getInt(1); assertThat(resultSetInt).as("A basic SELECT query succeeds").isEqualTo(1); + assertHasCorrectExposedAndLivenessCheckPorts(mariadb); } } @@ -145,6 +146,12 @@ void testEmptyPasswordWithRootUser() throws SQLException { } } + private void assertHasCorrectExposedAndLivenessCheckPorts(MariaDBContainer mariadb) { + assertThat(mariadb.getExposedPorts()).containsExactly(MariaDBContainer.MARIADB_PORT); + assertThat(mariadb.getLivenessCheckPortNumbers()) + .containsExactly(mariadb.getMappedPort(MariaDBContainer.MARIADB_PORT)); + } + private void assertThatCustomIniFileWasUsed(MariaDBContainer mariadb) throws SQLException { try (ResultSet resultSet = performQuery(mariadb, "SELECT @@GLOBAL.innodb_max_undo_log_size")) { long result = resultSet.getLong(1);