diff --git a/modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java b/modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java index 36315b2fe48..3dbe03e7aed 100644 --- a/modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java +++ b/modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java @@ -22,6 +22,9 @@ public class MySQLContainer> extends JdbcDatab private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("mysql"); + private static final DockerImageName ORACLE_IMAGE_NAME = + DockerImageName.parse("container-registry.oracle.com/mysql/community-server"); + @Deprecated public static final String DEFAULT_TAG = "5.7.34"; @@ -58,7 +61,7 @@ public MySQLContainer(String dockerImageName) { public MySQLContainer(final DockerImageName dockerImageName) { super(dockerImageName); - dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME); + dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME, ORACLE_IMAGE_NAME); addExposedPort(MYSQL_PORT); } diff --git a/modules/mysql/src/main/java/org/testcontainers/mysql/MySQLContainer.java b/modules/mysql/src/main/java/org/testcontainers/mysql/MySQLContainer.java index 25f876c9911..e279f23acfa 100644 --- a/modules/mysql/src/main/java/org/testcontainers/mysql/MySQLContainer.java +++ b/modules/mysql/src/main/java/org/testcontainers/mysql/MySQLContainer.java @@ -20,6 +20,8 @@ public class MySQLContainer extends JdbcDatabaseContainer { public static final String NAME = "mysql"; private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("mysql"); + private static final DockerImageName ORACLE_IMAGE_NAME = + DockerImageName.parse("container-registry.oracle.com/mysql/community-server"); static final String DEFAULT_USER = "test"; @@ -43,7 +45,7 @@ public MySQLContainer(String dockerImageName) { public MySQLContainer(final DockerImageName dockerImageName) { super(dockerImageName); - dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME); + dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME, ORACLE_IMAGE_NAME); addExposedPort(MYSQL_PORT); } diff --git a/modules/mysql/src/test/java/org/testcontainers/mysql/MySQLContainerTest.java b/modules/mysql/src/test/java/org/testcontainers/mysql/MySQLContainerTest.java index ad78781db5c..479c43508eb 100644 --- a/modules/mysql/src/test/java/org/testcontainers/mysql/MySQLContainerTest.java +++ b/modules/mysql/src/test/java/org/testcontainers/mysql/MySQLContainerTest.java @@ -7,6 +7,7 @@ import org.testcontainers.containers.ContainerLaunchException; import org.testcontainers.containers.output.Slf4jLogConsumer; import org.testcontainers.db.AbstractContainerDatabaseTest; +import org.testcontainers.utility.DockerImageName; import java.io.File; import java.net.URL; @@ -28,6 +29,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.assertj.core.api.Assumptions.assumeThat; +import static org.assertj.core.api.Assertions.assertThatNoException; + class MySQLContainerTest extends AbstractContainerDatabaseTest { @@ -270,6 +273,15 @@ void testCustom() throws SQLException { } } + @Test + void shouldAcceptOracleImageName() { + DockerImageName oracleImage = DockerImageName + .parse("container-registry.oracle.com/mysql/community-server:8.0"); + + assertThatNoException() + .isThrownBy(() -> new MySQLContainer(oracleImage)); + } + private void assertHasCorrectExposedAndLivenessCheckPorts(MySQLContainer mysql) { assertThat(mysql.getExposedPorts()).containsExactly(MySQLContainer.MYSQL_PORT); assertThat(mysql.getLivenessCheckPortNumbers()).containsExactly(mysql.getMappedPort(MySQLContainer.MYSQL_PORT));