diff --git a/framework-docs/src/docs/asciidoc/testing/testcontext-framework.adoc b/framework-docs/src/docs/asciidoc/testing/testcontext-framework.adoc index ed8e029e3d..ec8663d652 100644 --- a/framework-docs/src/docs/asciidoc/testing/testcontext-framework.adoc +++ b/framework-docs/src/docs/asciidoc/testing/testcontext-framework.adoc @@ -2022,12 +2022,14 @@ properties. class ExampleIntegrationTests { @Container - static RedisContainer redis = new RedisContainer(); + static GenericContainer redis = + new GenericContainer(DockerImageName.parse("redis:5.0.3-alpine")) + .withExposedPorts(6379); @DynamicPropertySource static void redisProperties(DynamicPropertyRegistry registry) { registry.add("redis.host", redis::getHost); - registry.add("redis.port", redis::getMappedPort); + registry.add("redis.port", redis::getFirstMappedPort); } // tests ... @@ -2045,13 +2047,15 @@ properties. @Container @JvmStatic - val redis: RedisContainer = RedisContainer() + val redis: GenericContainer = + GenericContainer(DockerImageName.parse("redis:5.0.3-alpine")) + .withExposedPorts(6379) @DynamicPropertySource @JvmStatic fun redisProperties(registry: DynamicPropertyRegistry) { registry.add("redis.host", redis::getHost) - registry.add("redis.port", redis::getMappedPort) + registry.add("redis.port", redis::getFirstMappedPort) } } diff --git a/spring-test/src/main/java/org/springframework/test/context/DynamicPropertySource.java b/spring-test/src/main/java/org/springframework/test/context/DynamicPropertySource.java index 91cdc3e833..1ebdc425ff 100644 --- a/spring-test/src/main/java/org/springframework/test/context/DynamicPropertySource.java +++ b/spring-test/src/main/java/org/springframework/test/context/DynamicPropertySource.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2022 the original author or authors. + * Copyright 2002-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -70,14 +70,16 @@ import java.lang.annotation.Target; * class ExampleIntegrationTests { * * @Container - * static RedisContainer redis = new RedisContainer(); + * static GenericContainer redis = + * new GenericContainer(DockerImageName.parse("redis:5.0.3-alpine")) + * .withExposedPorts(6379); * * // ... * * @DynamicPropertySource * static void redisProperties(DynamicPropertyRegistry registry) { * registry.add("redis.host", redis::getHost); - * registry.add("redis.port", redis::getMappedPort); + * registry.add("redis.port", redis::getFirstMappedPort); * } * * }