diff --git a/core/src/main/java/org/testcontainers/images/PullPolicy.java b/core/src/main/java/org/testcontainers/images/PullPolicy.java index 12d05b6fe5a..8c3a067cc15 100644 --- a/core/src/main/java/org/testcontainers/images/PullPolicy.java +++ b/core/src/main/java/org/testcontainers/images/PullPolicy.java @@ -40,7 +40,7 @@ public static synchronized ImagePullPolicy defaultPolicy() { .currentThread() .getContextClassLoader() .loadClass(imagePullPolicyClassName) - .getConstructor() + .getDeclaredConstructor() .newInstance(); } catch (Exception e) { throw new IllegalArgumentException( diff --git a/core/src/test/java/org/testcontainers/images/OverrideImagePullPolicyTest.java b/core/src/test/java/org/testcontainers/images/OverrideImagePullPolicyTest.java index 3b410fd5ab9..43c026ea294 100644 --- a/core/src/test/java/org/testcontainers/images/OverrideImagePullPolicyTest.java +++ b/core/src/test/java/org/testcontainers/images/OverrideImagePullPolicyTest.java @@ -51,4 +51,20 @@ public void simpleConfigurationTest() { container.stop(); } } + + @Test + public void alwaysPullConfigurationTest() { + Mockito + .doReturn(AlwaysPullPolicy.class.getCanonicalName()) + .when(TestcontainersConfiguration.getInstance()) + .getImagePullPolicy(); + + try (DockerRegistryContainer registry = new DockerRegistryContainer()) { + registry.start(); + GenericContainer container = new GenericContainer<>(registry.createImage()).withExposedPorts(8080); + container.start(); + assertThat(container.getImage().imagePullPolicy).isInstanceOf(AlwaysPullPolicy.class); + container.stop(); + } + } } diff --git a/docs/features/advanced_options.md b/docs/features/advanced_options.md index 9dd86edccd5..e979da9ecdf 100644 --- a/docs/features/advanced_options.md +++ b/docs/features/advanced_options.md @@ -38,6 +38,14 @@ You can also configure Testcontainers to use your custom implementation by using pull.policy=com.mycompany.testcontainers.ExampleImagePullPolicy ``` +You can also use the provided implementation to always pull images + +=== "`src/test/resources/testcontainers.properties`" + ```text + pull.policy=org.testcontainers.images.AlwaysPullPolicy + ``` + + Please see [the documentation on configuration mechanisms](./configuration.md) for more information. ## Customizing the container