From bf08cc25dfa8af6d39a40fe00c58f6d31f9b2ef7 Mon Sep 17 00:00:00 2001 From: Scott Frederick Date: Thu, 20 Jul 2023 15:43:17 -0600 Subject: [PATCH] Use DockerImageNames in Docker compose integration tests Closes gh-36485 --- .../spring-boot-docker-compose/build.gradle | 1 + ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...nectionDetailsFactoryIntegrationTests.java | 3 +- ...AbstractDockerComposeIntegrationTests.java | 35 +++++++++++++++- ...nectionDetailsFactoryIntegrationTests.java | 3 +- .../cassandra/cassandra-compose.yaml | 2 +- .../elasticsearch/elasticsearch-compose.yaml | 2 +- .../connection/flyway/flyway-compose.yaml | 2 +- .../liquibase/liquibase-compose.yaml | 2 +- .../connection/mariadb/mariadb-compose.yaml | 2 +- .../connection/mongo/mongo-compose.yaml | 2 +- .../connection/mysql/mysql-compose.yaml | 2 +- .../connection/oracle/oracle-compose.yaml | 2 +- .../connection/postgres/postgres-compose.yaml | 2 +- .../connection/rabbit/rabbit-compose.yaml | 2 +- .../connection/redis/redis-compose.yaml | 2 +- .../sqlserver/mssqlserver-compose.yaml | 2 +- .../connection/zipkin/zipkin-compose.yaml | 2 +- .../testcontainers/DockerImageNames.java | 40 ++++++++++++++++++- 34 files changed, 122 insertions(+), 34 deletions(-) diff --git a/spring-boot-project/spring-boot-docker-compose/build.gradle b/spring-boot-project/spring-boot-docker-compose/build.gradle index 371a0d20730..b0429632ffa 100644 --- a/spring-boot-project/spring-boot-docker-compose/build.gradle +++ b/spring-boot-project/spring-boot-docker-compose/build.gradle @@ -29,6 +29,7 @@ dependencies { testImplementation("org.mockito:mockito-core") testImplementation("org.springframework:spring-core-test") testImplementation("org.springframework:spring-test") + testImplementation("org.testcontainers:testcontainers") testRuntimeOnly("com.microsoft.sqlserver:mssql-jdbc") testRuntimeOnly("com.oracle.database.r2dbc:oracle-r2dbc") diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactoryIntegrationTests.java index c4cf1c637b2..5c7bd51379b 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -23,6 +23,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails; import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails.Node; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -34,7 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat; class CassandraDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { CassandraDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("cassandra-compose.yaml"); + super("cassandra-compose.yaml", DockerImageNames.cassandra()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java index 93682588957..c373f26f9ac 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -22,6 +22,7 @@ import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnect import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails.Node; import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails.Node.Protocol; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -35,7 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat; class ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("elasticsearch-compose.yaml"); + super("elasticsearch-compose.yaml", DockerImageNames.elasticsearch8()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/flyway/JdbcAdaptingFlywayConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/flyway/JdbcAdaptingFlywayConnectionDetailsFactoryIntegrationTests.java index 16bfb98cf9b..a87d73f347a 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/flyway/JdbcAdaptingFlywayConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/flyway/JdbcAdaptingFlywayConnectionDetailsFactoryIntegrationTests.java @@ -20,6 +20,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.flyway.FlywayConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -31,7 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat; class JdbcAdaptingFlywayConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { JdbcAdaptingFlywayConnectionDetailsFactoryIntegrationTests() { - super("flyway-compose.yaml"); + super("flyway-compose.yaml", DockerImageNames.postgresql()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/liquibase/JdbcAdaptingLiquibaseConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/liquibase/JdbcAdaptingLiquibaseConnectionDetailsFactoryIntegrationTests.java index a9085f9329f..9530bdeb567 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/liquibase/JdbcAdaptingLiquibaseConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/liquibase/JdbcAdaptingLiquibaseConnectionDetailsFactoryIntegrationTests.java @@ -20,6 +20,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.liquibase.LiquibaseConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -31,7 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat; class JdbcAdaptingLiquibaseConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { JdbcAdaptingLiquibaseConnectionDetailsFactoryIntegrationTests() { - super("liquibase-compose.yaml"); + super("liquibase-compose.yaml", DockerImageNames.postgresql()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index e3b4dbc1cb0..61b07277147 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -20,6 +20,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -33,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat; class MariaDbJdbcDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { MariaDbJdbcDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("mariadb-compose.yaml"); + super("mariadb-compose.yaml", DockerImageNames.mariadb()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index c72f7d8f8e9..0e69f50f9cc 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -21,6 +21,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -34,7 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat; class MariaDbR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { MariaDbR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("mariadb-compose.yaml"); + super("mariadb-compose.yaml", DockerImageNames.mariadb()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactoryIntegrationTests.java index 01777d1a74f..e863d424e64 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -21,6 +21,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -35,7 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat; class MongoDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { MongoDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("mongo-compose.yaml"); + super("mongo-compose.yaml", DockerImageNames.mongo()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index b33d7dc6ed8..418ccd85387 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -20,6 +20,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -33,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat; class MySqlJdbcDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { MySqlJdbcDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("mysql-compose.yaml"); + super("mysql-compose.yaml", DockerImageNames.mysql()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index e5718bbfc06..cf21913c926 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -21,6 +21,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -34,7 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat; class MySqlR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { MySqlR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("mysql-compose.yaml"); + super("mysql-compose.yaml", DockerImageNames.mysql()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/oracle/OracleJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/oracle/OracleJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index 43666f3b545..4a56f269726 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/oracle/OracleJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/oracle/OracleJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -27,6 +27,7 @@ import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; import org.springframework.boot.jdbc.DatabaseDriver; import org.springframework.boot.testsupport.junit.DisabledOnOs; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.SimpleDriverDataSource; import org.springframework.util.ClassUtils; @@ -43,7 +44,7 @@ import static org.assertj.core.api.Assertions.assertThat; class OracleJdbcDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { OracleJdbcDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("oracle-compose.yaml"); + super("oracle-compose.yaml", DockerImageNames.oracleXe()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/oracle/OracleR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/oracle/OracleR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index c1677880686..0399aadc19a 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/oracle/OracleR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/oracle/OracleR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -28,6 +28,7 @@ import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; import org.springframework.boot.jdbc.DatabaseDriver; import org.springframework.boot.testsupport.junit.DisabledOnOs; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import org.springframework.r2dbc.core.DatabaseClient; import static org.assertj.core.api.Assertions.assertThat; @@ -42,7 +43,7 @@ import static org.assertj.core.api.Assertions.assertThat; class OracleR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { OracleR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("oracle-compose.yaml"); + super("oracle-compose.yaml", DockerImageNames.oracleXe()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index ff1a9466c08..b0a3873cdf5 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -20,6 +20,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -33,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat; class PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("postgres-compose.yaml"); + super("postgres-compose.yaml", DockerImageNames.postgresql()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index d741d3e1bcf..ba152f37c8c 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -21,6 +21,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -34,7 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat; class PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("postgres-compose.yaml"); + super("postgres-compose.yaml", DockerImageNames.postgresql()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactoryIntegrationTests.java index 2a3930ed2fd..96ccf959aaa 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -21,6 +21,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails; import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails.Address; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -34,7 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat; class RabbitDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { RabbitDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("rabbit-compose.yaml"); + super("rabbit-compose.yaml", DockerImageNames.rabbit()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/redis/RedisDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/redis/RedisDockerComposeConnectionDetailsFactoryIntegrationTests.java index 1373362056d..720f6a1d940 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/redis/RedisDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/redis/RedisDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -21,6 +21,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails; import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails.Standalone; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -34,7 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat; class RedisDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { RedisDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("redis-compose.yaml"); + super("redis-compose.yaml", DockerImageNames.redis()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/sqlserver/SqlServerJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/sqlserver/SqlServerJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index 3e954dfc937..f9f020e4e06 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/sqlserver/SqlServerJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/sqlserver/SqlServerJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -25,6 +25,7 @@ import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; import org.springframework.boot.jdbc.DatabaseDriver; import org.springframework.boot.testsupport.junit.DisabledOnOs; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.SimpleDriverDataSource; import org.springframework.util.ClassUtils; @@ -41,7 +42,7 @@ import static org.assertj.core.api.Assertions.assertThat; class SqlServerJdbcDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { SqlServerJdbcDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("mssqlserver-compose.yaml"); + super("mssqlserver-compose.yaml", DockerImageNames.sqlserver()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/sqlserver/SqlServerR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/sqlserver/SqlServerR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index 09382daa55e..91bf322bd1a 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/sqlserver/SqlServerR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/sqlserver/SqlServerR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -27,6 +27,7 @@ import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; import org.springframework.boot.jdbc.DatabaseDriver; import org.springframework.boot.testsupport.junit.DisabledOnOs; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import org.springframework.r2dbc.core.DatabaseClient; import static org.assertj.core.api.Assertions.assertThat; @@ -42,7 +43,7 @@ class SqlServerR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { SqlServerR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("mssqlserver-compose.yaml"); + super("mssqlserver-compose.yaml", DockerImageNames.sqlserver()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/test/AbstractDockerComposeIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/test/AbstractDockerComposeIntegrationTests.java index d59742b8631..b282af843d5 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/test/AbstractDockerComposeIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/test/AbstractDockerComposeIntegrationTests.java @@ -16,10 +16,17 @@ package org.springframework.boot.docker.compose.service.connection.test; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.nio.file.Path; import java.util.LinkedHashMap; import java.util.Map; import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.io.TempDir; +import org.testcontainers.utility.DockerImageName; import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplicationShutdownHandlers; @@ -28,28 +35,38 @@ import org.springframework.boot.testsupport.process.DisabledIfProcessUnavailable import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; +import org.springframework.util.FileCopyUtils; import org.springframework.util.function.ThrowingSupplier; +import static org.junit.Assert.fail; + /** * Abstract base class for integration tests. * * @author Moritz Halbritter * @author Andy Wilkinson + * @author Scott Frederick */ @DisabledIfProcessUnavailable({ "docker", "version" }) @DisabledIfProcessUnavailable({ "docker", "compose" }) public abstract class AbstractDockerComposeIntegrationTests { + @TempDir + private static Path tempDir; + private final Resource composeResource; + private final DockerImageName dockerImageName; + @AfterAll static void shutDown() { SpringApplicationShutdownHandlers shutdownHandlers = SpringApplication.getShutdownHandlers(); ((Runnable) shutdownHandlers).run(); } - protected AbstractDockerComposeIntegrationTests(String composeResource) { + protected AbstractDockerComposeIntegrationTests(String composeResource, DockerImageName dockerImageName) { this.composeResource = new ClassPathResource(composeResource, getClass()); + this.dockerImageName = dockerImageName; } protected final T run(Class type) { @@ -57,12 +74,26 @@ public abstract class AbstractDockerComposeIntegrationTests { Map properties = new LinkedHashMap<>(); properties.put("spring.docker.compose.skip.in-tests", "false"); properties.put("spring.docker.compose.file", - ThrowingSupplier.of(this.composeResource::getFile).get().getAbsolutePath()); + transformedComposeFile(ThrowingSupplier.of(this.composeResource::getFile).get(), this.dockerImageName)); properties.put("spring.docker.compose.stop.command", "down"); application.setDefaultProperties(properties); return application.run().getBean(type); } + private File transformedComposeFile(File composeFile, DockerImageName imageName) { + File tempComposeFile = Path.of(tempDir.toString(), composeFile.getName()).toFile(); + try { + String composeFileContent = FileCopyUtils.copyToString(new FileReader(composeFile)); + composeFileContent = composeFileContent.replace("{imageName}", imageName.asCanonicalNameString()); + FileCopyUtils.copy(composeFileContent, new FileWriter(tempComposeFile)); + } + catch (IOException ex) { + fail("Error transforming Docker compose file '" + composeFile + "' to '" + tempComposeFile + "': " + + ex.getMessage()); + } + return tempComposeFile; + } + @Configuration(proxyBeanMethods = false) static class Config { diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/zipkin/ZipkinDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/zipkin/ZipkinDockerComposeConnectionDetailsFactoryIntegrationTests.java index 6eeffc25029..b77d558789b 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/zipkin/ZipkinDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/zipkin/ZipkinDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -20,6 +20,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.tracing.zipkin.ZipkinConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests; +import org.springframework.boot.testsupport.testcontainers.DockerImageNames; import static org.assertj.core.api.Assertions.assertThat; @@ -33,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat; class ZipkinDockerComposeConnectionDetailsFactoryIntegrationTests extends AbstractDockerComposeIntegrationTests { ZipkinDockerComposeConnectionDetailsFactoryIntegrationTests() { - super("zipkin-compose.yaml"); + super("zipkin-compose.yaml", DockerImageNames.zipkin()); } @Test diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/cassandra/cassandra-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/cassandra/cassandra-compose.yaml index b1d466ebdce..7953636f152 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/cassandra/cassandra-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/cassandra/cassandra-compose.yaml @@ -1,6 +1,6 @@ services: cassandra: - image: 'cassandra:3.11.10' + image: '{imageName}' ports: - '9042' environment: diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/elasticsearch/elasticsearch-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/elasticsearch/elasticsearch-compose.yaml index b5d214f5445..31ac2461ab8 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/elasticsearch/elasticsearch-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/elasticsearch/elasticsearch-compose.yaml @@ -1,6 +1,6 @@ services: elasticsearch: - image: 'elasticsearch:8.6.1' + image: '{imageName}' environment: - 'ELASTIC_PASSWORD=secret' - 'ES_JAVA_OPTS=-Xmx512m' diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/flyway/flyway-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/flyway/flyway-compose.yaml index 5f781d980f3..cb721c823b2 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/flyway/flyway-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/flyway/flyway-compose.yaml @@ -1,6 +1,6 @@ services: database: - image: 'postgres:15.2' + image: '{imageName}' ports: - '5432' environment: diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/liquibase/liquibase-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/liquibase/liquibase-compose.yaml index 5f781d980f3..cb721c823b2 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/liquibase/liquibase-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/liquibase/liquibase-compose.yaml @@ -1,6 +1,6 @@ services: database: - image: 'postgres:15.2' + image: '{imageName}' ports: - '5432' environment: diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/mariadb/mariadb-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/mariadb/mariadb-compose.yaml index 7902b194f44..c63fd81224b 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/mariadb/mariadb-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/mariadb/mariadb-compose.yaml @@ -1,6 +1,6 @@ services: database: - image: 'mariadb:10.10' + image: '{imageName}' ports: - '3306' environment: diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/mongo/mongo-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/mongo/mongo-compose.yaml index 279af979588..135b54ec52a 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/mongo/mongo-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/mongo/mongo-compose.yaml @@ -1,6 +1,6 @@ services: mongo: - image: 'mongo:6.0' + image: '{imageName}' ports: - '27017' environment: diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/mysql/mysql-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/mysql/mysql-compose.yaml index 6aa9f4da092..b0340ed3ed4 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/mysql/mysql-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/mysql/mysql-compose.yaml @@ -1,6 +1,6 @@ services: database: - image: 'mysql:8.0' + image: '{imageName}' ports: - '3306' environment: diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/oracle/oracle-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/oracle/oracle-compose.yaml index 4775f6c11bc..fd467f44d45 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/oracle/oracle-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/oracle/oracle-compose.yaml @@ -1,6 +1,6 @@ services: database: - image: 'gvenzl/oracle-xe:18.4.0-slim' + image: '{imageName}' ports: - '1521' environment: diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/postgres/postgres-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/postgres/postgres-compose.yaml index 5f781d980f3..cb721c823b2 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/postgres/postgres-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/postgres/postgres-compose.yaml @@ -1,6 +1,6 @@ services: database: - image: 'postgres:15.2' + image: '{imageName}' ports: - '5432' environment: diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/rabbit/rabbit-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/rabbit/rabbit-compose.yaml index 4808c8432e5..1951fba4bb0 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/rabbit/rabbit-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/rabbit/rabbit-compose.yaml @@ -1,6 +1,6 @@ services: rabbitmq: - image: 'rabbitmq:3.11' + image: '{imageName}' environment: - 'RABBITMQ_DEFAULT_USER=myuser' - 'RABBITMQ_DEFAULT_PASS=secret' diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/redis/redis-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/redis/redis-compose.yaml index 411e2569699..9511c464d9f 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/redis/redis-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/redis/redis-compose.yaml @@ -1,5 +1,5 @@ services: redis: - image: 'redis:7.0' + image: '{imageName}' ports: - '6379' diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/sqlserver/mssqlserver-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/sqlserver/mssqlserver-compose.yaml index 15e3d2cf4a5..672b27ad78f 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/sqlserver/mssqlserver-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/sqlserver/mssqlserver-compose.yaml @@ -1,6 +1,6 @@ services: database: - image: 'mcr.microsoft.com/mssql/server' + image: '{imageName}' ports: - '1433' environment: diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/zipkin/zipkin-compose.yaml b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/zipkin/zipkin-compose.yaml index d5ebe65d4d5..686f841b4cb 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/zipkin/zipkin-compose.yaml +++ b/spring-boot-project/spring-boot-docker-compose/src/test/resources/org/springframework/boot/docker/compose/service/connection/zipkin/zipkin-compose.yaml @@ -1,5 +1,5 @@ services: zipkin: - image: 'openzipkin/zipkin:2.24' + image: '{imageName}' ports: - '9411' diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/DockerImageNames.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/DockerImageNames.java index 4ef13942d99..6c9eb457d75 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/DockerImageNames.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/DockerImageNames.java @@ -36,10 +36,16 @@ public final class DockerImageNames { private static final String ELASTICSEARCH_VERSION = "7.17.5"; + private static final String ELASTICSEARCH_8_VERSION = "8.6.1"; + private static final String KAFKA_VERSION = "7.4.0"; + private static final String MARIADB_VERSION = "10.10"; + private static final String MONGO_VERSION = "5.0.17"; + private static final String MYSQL_VERSION = "8.0"; + private static final String NEO4J_VERSION = "4.4.11"; private static final String ORACLE_XE_VERSION = "18.4.0-slim"; @@ -84,13 +90,21 @@ public final class DockerImageNames { } /** - * Return a {@link DockerImageName} suitable for running Elasticsearch. + * Return a {@link DockerImageName} suitable for running Elasticsearch 7. * @return a docker image name for running elasticsearch */ public static DockerImageName elasticsearch() { return DockerImageName.parse("docker.elastic.co/elasticsearch/elasticsearch").withTag(ELASTICSEARCH_VERSION); } + /** + * Return a {@link DockerImageName} suitable for running Elasticsearch 8. + * @return a docker image name for running elasticsearch + */ + public static DockerImageName elasticsearch8() { + return DockerImageName.parse("elasticsearch").withTag(ELASTICSEARCH_8_VERSION); + } + /** * Return a {@link DockerImageName} suitable for running Kafka. * @return a docker image name for running Kafka @@ -99,6 +113,14 @@ public final class DockerImageNames { return DockerImageName.parse("confluentinc/cp-kafka").withTag(KAFKA_VERSION); } + /** + * Return a {@link DockerImageName} suitable for running MariaDB. + * @return a docker image name for running Mariadb + */ + public static DockerImageName mariadb() { + return DockerImageName.parse("mariadb").withTag(MARIADB_VERSION); + } + /** * Return a {@link DockerImageName} suitable for running Mongo. * @return a docker image name for running mongo @@ -107,6 +129,14 @@ public final class DockerImageNames { return DockerImageName.parse("mongo").withTag(MONGO_VERSION); } + /** + * Return a {@link DockerImageName} suitable for running MySQL. + * @return a docker image name for running MySQL + */ + public static DockerImageName mysql() { + return DockerImageName.parse("mysql").withTag(MYSQL_VERSION); + } + /** * Return a {@link DockerImageName} suitable for running Neo4j. * @return a docker image name for running neo4j @@ -157,6 +187,14 @@ public final class DockerImageNames { .asCompatibleSubstituteFor("docker.redpanda.com/redpandadata/redpanda"); } + /** + * Return a {@link DockerImageName} suitable for running Microsoft SQLServer. + * @return a docker image name for running SQLServer + */ + public static DockerImageName sqlserver() { + return DockerImageName.parse("mcr.microsoft.com/mssql/server"); + } + /** * Return a {@link DockerImageName} suitable for running a Docker registry. * @return a docker image name for running a registry