From fa499d9b1df331e3a545f157a12967c23cdde880 Mon Sep 17 00:00:00 2001 From: Khalil Sleimi Date: Tue, 28 Jul 2026 21:26:41 +0200 Subject: [PATCH] Update tiny image from alpine:3.17 to alpine:3.24 --- .../main/java/org/testcontainers/DockerClientFactory.java | 2 +- core/src/test/java/org/testcontainers/TestImages.java | 4 ++-- .../testcontainers/containers/DockerComposeFilesTest.java | 2 +- .../testcontainers/containers/GenericContainerTest.java | 4 ++-- .../containers/ParsedDockerComposeFileValidationTest.java | 8 ++++---- .../containers/output/ToStringConsumerTest.java | 8 ++++---- .../org/testcontainers/dockerclient/ImagePullTest.java | 2 +- .../java/org/testcontainers/junit/DockerfileTest.java | 6 +++--- .../testcontainers/junit/FixedHostPortContainerTest.java | 2 +- .../testcontainers/utility/DirectoryTarResourceTest.java | 6 +++--- core/src/test/resources/compose-dockerfile/Dockerfile | 2 +- .../resources/compose-scaling-multiple-containers.yml | 2 +- .../src/test/java/generic/ContainerCreationTest.java | 2 +- .../generic/src/test/java/generic/ContainerLabelTest.java | 4 ++-- .../junit4/generic/src/test/java/generic/ExecTest.java | 2 +- docs/features/configuration.md | 2 +- docs/features/creating_images.md | 2 +- .../org/testcontainers/spock/SpockTestImages.groovy | 2 +- 18 files changed, 31 insertions(+), 31 deletions(-) diff --git a/core/src/main/java/org/testcontainers/DockerClientFactory.java b/core/src/main/java/org/testcontainers/DockerClientFactory.java index 989aaf36be3..3bf407d2eb4 100644 --- a/core/src/main/java/org/testcontainers/DockerClientFactory.java +++ b/core/src/main/java/org/testcontainers/DockerClientFactory.java @@ -79,7 +79,7 @@ static Map markerLabels() { return Collections.unmodifiableMap(labels); } - private static final DockerImageName TINY_IMAGE = DockerImageName.parse("alpine:3.17"); + private static final DockerImageName TINY_IMAGE = DockerImageName.parse("alpine:3.24"); private static DockerClientFactory instance; diff --git a/core/src/test/java/org/testcontainers/TestImages.java b/core/src/test/java/org/testcontainers/TestImages.java index 0d052f8e963..d6d8b3c4151 100644 --- a/core/src/test/java/org/testcontainers/TestImages.java +++ b/core/src/test/java/org/testcontainers/TestImages.java @@ -9,9 +9,9 @@ public interface TestImages { DockerImageName MONGODB_IMAGE = DockerImageName.parse("mongo:4.4"); - DockerImageName ALPINE_IMAGE = DockerImageName.parse("alpine:3.17"); + DockerImageName ALPINE_IMAGE = DockerImageName.parse("alpine:3.24"); DockerImageName DOCKER_REGISTRY_IMAGE = DockerImageName.parse("registry:2.7.0"); - DockerImageName TINY_IMAGE = DockerImageName.parse("alpine:3.17"); + DockerImageName TINY_IMAGE = DockerImageName.parse("alpine:3.24"); } diff --git a/core/src/test/java/org/testcontainers/containers/DockerComposeFilesTest.java b/core/src/test/java/org/testcontainers/containers/DockerComposeFilesTest.java index 4704817c0e0..9e57df1b58a 100644 --- a/core/src/test/java/org/testcontainers/containers/DockerComposeFilesTest.java +++ b/core/src/test/java/org/testcontainers/containers/DockerComposeFilesTest.java @@ -27,6 +27,6 @@ void shouldGetDependencyImagesWhenOverriding() { ) ); assertThat(dockerComposeFiles.getDependencyImages()) - .containsExactlyInAnyOrder("alpine:3.17", "redis:b", "mysql:b", "aservice:latest"); + .containsExactlyInAnyOrder("alpine:3.24", "redis:b", "mysql:b", "aservice:latest"); } } diff --git a/core/src/test/java/org/testcontainers/containers/GenericContainerTest.java b/core/src/test/java/org/testcontainers/containers/GenericContainerTest.java index 37aac1b0af9..f0a609ab290 100644 --- a/core/src/test/java/org/testcontainers/containers/GenericContainerTest.java +++ b/core/src/test/java/org/testcontainers/containers/GenericContainerTest.java @@ -237,7 +237,7 @@ void shouldReturnTheProvidedImage() { GenericContainer container = new GenericContainer(TestImages.REDIS_IMAGE); assertThat(container.getImage().get()).isEqualTo("redis:6-alpine"); container.setImage(new RemoteDockerImage(TestImages.ALPINE_IMAGE)); - assertThat(container.getImage().get()).isEqualTo("alpine:3.17"); + assertThat(container.getImage().get()).isEqualTo("alpine:3.24"); } @Test @@ -301,7 +301,7 @@ private static Optional reportLeakedContainers() { List containers = dockerClient .listContainersCmd() - .withAncestorFilter(Collections.singletonList("alpine:3.17")) + .withAncestorFilter(Collections.singletonList("alpine:3.24")) .withLabelFilter( Arrays.asList( DockerClientFactory.TESTCONTAINERS_SESSION_ID_LABEL + "=" + DockerClientFactory.SESSION_ID, diff --git a/core/src/test/java/org/testcontainers/containers/ParsedDockerComposeFileValidationTest.java b/core/src/test/java/org/testcontainers/containers/ParsedDockerComposeFileValidationTest.java index 36126df6a38..a280a40873d 100644 --- a/core/src/test/java/org/testcontainers/containers/ParsedDockerComposeFileValidationTest.java +++ b/core/src/test/java/org/testcontainers/containers/ParsedDockerComposeFileValidationTest.java @@ -133,8 +133,8 @@ void shouldObtainImageFromDockerfileBuild() { .contains( entry("mysql", Sets.newHashSet("mysql")), entry("redis", Sets.newHashSet("redis")), - entry("custom", Sets.newHashSet("alpine:3.17")) - ); // r/ redis, mysql from compose file, alpine:3.17 from Dockerfile build + entry("custom", Sets.newHashSet("alpine:3.24")) + ); // r/ redis, mysql from compose file, alpine:3.24 from Dockerfile build } @Test @@ -146,8 +146,8 @@ void shouldObtainImageFromDockerfileBuildWithContext() { .contains( entry("mysql", Sets.newHashSet("mysql")), entry("redis", Sets.newHashSet("redis")), - entry("custom", Sets.newHashSet("alpine:3.17")) - ); // redis, mysql from compose file, alpine:3.17 from Dockerfile build + entry("custom", Sets.newHashSet("alpine:3.24")) + ); // redis, mysql from compose file, alpine:3.24 from Dockerfile build } @Test diff --git a/core/src/test/java/org/testcontainers/containers/output/ToStringConsumerTest.java b/core/src/test/java/org/testcontainers/containers/output/ToStringConsumerTest.java index 45472771168..cea79e386a9 100644 --- a/core/src/test/java/org/testcontainers/containers/output/ToStringConsumerTest.java +++ b/core/src/test/java/org/testcontainers/containers/output/ToStringConsumerTest.java @@ -24,7 +24,7 @@ class ToStringConsumerTest { @Test void newlines_are_not_added_to_exec_output() throws Exception { - try (GenericContainer container = new GenericContainer<>("alpine:3.17")) { + try (GenericContainer container = new GenericContainer<>("alpine:3.24")) { container.withCommand("sleep", "2m"); container.start(); @@ -36,7 +36,7 @@ void newlines_are_not_added_to_exec_output() throws Exception { @Test @Timeout(60) void newlines_are_not_added_to_exec_output_with_tty() throws Exception { - try (GenericContainer container = new GenericContainer<>("alpine:3.17")) { + try (GenericContainer container = new GenericContainer<>("alpine:3.24")) { container.withCreateContainerCmdModifier(cmd -> { cmd.withAttachStdin(true).withStdinOpen(true).withTty(true); }); @@ -50,7 +50,7 @@ void newlines_are_not_added_to_exec_output_with_tty() throws Exception { @Test void newlines_are_not_added_to_container_output() { - try (GenericContainer container = new GenericContainer<>("alpine:3.17")) { + try (GenericContainer container = new GenericContainer<>("alpine:3.24")) { container.withCommand("echo", "-n", LARGE_PAYLOAD); container.setStartupCheckStrategy(new OneShotStartupCheckStrategy()); container.start(); @@ -63,7 +63,7 @@ void newlines_are_not_added_to_container_output() { @Test void newlines_are_not_added_to_container_output_with_tty() { - try (GenericContainer container = new GenericContainer<>("alpine:3.17")) { + try (GenericContainer container = new GenericContainer<>("alpine:3.24")) { container.withCreateContainerCmdModifier(cmd -> { cmd.withTty(true); }); diff --git a/core/src/test/java/org/testcontainers/dockerclient/ImagePullTest.java b/core/src/test/java/org/testcontainers/dockerclient/ImagePullTest.java index d5329430e71..e0beb11cb21 100644 --- a/core/src/test/java/org/testcontainers/dockerclient/ImagePullTest.java +++ b/core/src/test/java/org/testcontainers/dockerclient/ImagePullTest.java @@ -11,7 +11,7 @@ class ImagePullTest { public static String[] parameters() { return new String[] { "alpine:latest", - "alpine:3.17", + "alpine:3.24", "alpine", // omitting the tag should work and default to latest "alpine@sha256:1775bebec23e1f3ce486989bfc9ff3c4e951690df84aa9f926497d82f2ffca9d", "docker.io/testcontainers/ryuk:latest", diff --git a/core/src/test/java/org/testcontainers/junit/DockerfileTest.java b/core/src/test/java/org/testcontainers/junit/DockerfileTest.java index 9f85af8d209..c246d8c84b2 100644 --- a/core/src/test/java/org/testcontainers/junit/DockerfileTest.java +++ b/core/src/test/java/org/testcontainers/junit/DockerfileTest.java @@ -38,7 +38,7 @@ protected void configure(BuildImageCmd buildImageCmd) { super.configure(buildImageCmd); List dockerfile = Arrays.asList( - "FROM alpine:3.17", + "FROM alpine:3.24", "RUN echo 'hello from Docker build process'", "CMD yes" ); @@ -58,7 +58,7 @@ void dockerfileBuilderWorks() { .withFileFromString("folder/someFile.txt", "hello") .withDockerfileFromBuilder(builder -> { builder - .from("alpine:3.17") + .from("alpine:3.24") .workDir("/app") .add("test.txt", "test file.txt") .run("ls", "-la", "/app/test file.txt") @@ -101,7 +101,7 @@ public int getFileMode() { ) .withDockerfileFromBuilder(builder -> { builder - .from("alpine:3.17") // + .from("alpine:3.24") // .copy("someFile.txt", "/someFile.txt") .cmd("stat -c \"%a\" /someFile.txt"); }); diff --git a/core/src/test/java/org/testcontainers/junit/FixedHostPortContainerTest.java b/core/src/test/java/org/testcontainers/junit/FixedHostPortContainerTest.java index 38f1f5c9a6f..dbcd4dde0c1 100644 --- a/core/src/test/java/org/testcontainers/junit/FixedHostPortContainerTest.java +++ b/core/src/test/java/org/testcontainers/junit/FixedHostPortContainerTest.java @@ -22,7 +22,7 @@ */ class FixedHostPortContainerTest { - private static final String TEST_IMAGE = "alpine:3.17"; + private static final String TEST_IMAGE = "alpine:3.24"; /** * Default http server port (just something different from default) diff --git a/core/src/test/java/org/testcontainers/utility/DirectoryTarResourceTest.java b/core/src/test/java/org/testcontainers/utility/DirectoryTarResourceTest.java index bfd3641adeb..38cd2c71036 100644 --- a/core/src/test/java/org/testcontainers/utility/DirectoryTarResourceTest.java +++ b/core/src/test/java/org/testcontainers/utility/DirectoryTarResourceTest.java @@ -22,7 +22,7 @@ void simpleRecursiveFileTest() { new ImageFromDockerfile() .withDockerfileFromBuilder(builder -> { builder - .from("alpine:3.17") + .from("alpine:3.24") .copy("/tmp/foo", "/foo") .cmd("cat /foo/test/resources/test-recursive-file.txt") .build(); @@ -47,7 +47,7 @@ void simpleRecursiveFileWithPermissionTest() { new ImageFromDockerfile() .withDockerfileFromBuilder(builder -> { builder - .from("alpine:3.17") // + .from("alpine:3.24") // .copy("/tmp/foo", "/foo") .cmd("ls", "-al", "/") .build(); @@ -75,7 +75,7 @@ void simpleRecursiveClasspathResourceTest() { new ImageFromDockerfile() .withDockerfileFromBuilder(builder -> { builder - .from("alpine:3.17") // + .from("alpine:3.24") // .copy("/tmp/foo", "/foo") .cmd("ls -lRt /foo") .build(); diff --git a/core/src/test/resources/compose-dockerfile/Dockerfile b/core/src/test/resources/compose-dockerfile/Dockerfile index 7450ebde82c..1c86e2644a3 100644 --- a/core/src/test/resources/compose-dockerfile/Dockerfile +++ b/core/src/test/resources/compose-dockerfile/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.17 +FROM alpine:3.24 ADD passthrough.sh /passthrough.sh diff --git a/core/src/test/resources/compose-scaling-multiple-containers.yml b/core/src/test/resources/compose-scaling-multiple-containers.yml index ce3f002f1e8..5461358e0d4 100644 --- a/core/src/test/resources/compose-scaling-multiple-containers.yml +++ b/core/src/test/resources/compose-scaling-multiple-containers.yml @@ -3,5 +3,5 @@ services: redis: image: redis other: - image: alpine:3.17 + image: alpine:3.24 command: sleep 10000 diff --git a/docs/examples/junit4/generic/src/test/java/generic/ContainerCreationTest.java b/docs/examples/junit4/generic/src/test/java/generic/ContainerCreationTest.java index e202580c247..1980d00f3cc 100644 --- a/docs/examples/junit4/generic/src/test/java/generic/ContainerCreationTest.java +++ b/docs/examples/junit4/generic/src/test/java/generic/ContainerCreationTest.java @@ -20,7 +20,7 @@ public class ContainerCreationTest { // } // spotless:on - public static final DockerImageName ALPINE_IMAGE = DockerImageName.parse("alpine:3.17"); + public static final DockerImageName ALPINE_IMAGE = DockerImageName.parse("alpine:3.24"); // spotless:off // withOptions { diff --git a/docs/examples/junit4/generic/src/test/java/generic/ContainerLabelTest.java b/docs/examples/junit4/generic/src/test/java/generic/ContainerLabelTest.java index 73dac2bda9b..dabb23338bc 100644 --- a/docs/examples/junit4/generic/src/test/java/generic/ContainerLabelTest.java +++ b/docs/examples/junit4/generic/src/test/java/generic/ContainerLabelTest.java @@ -9,7 +9,7 @@ public class ContainerLabelTest { // single_label { - public GenericContainer containerWithLabel = new GenericContainer(DockerImageName.parse("alpine:3.17")) + public GenericContainer containerWithLabel = new GenericContainer(DockerImageName.parse("alpine:3.24")) .withLabel("key", "value"); // } @@ -17,7 +17,7 @@ public class ContainerLabelTest { private Map mapOfLabels = new HashMap<>(); // populate map, e.g. mapOfLabels.put("key1", "value1"); - public GenericContainer containerWithMultipleLabels = new GenericContainer(DockerImageName.parse("alpine:3.17")) + public GenericContainer containerWithMultipleLabels = new GenericContainer(DockerImageName.parse("alpine:3.24")) .withLabels(mapOfLabels); // } } diff --git a/docs/examples/junit4/generic/src/test/java/generic/ExecTest.java b/docs/examples/junit4/generic/src/test/java/generic/ExecTest.java index 078e177242f..bbb355dffa9 100644 --- a/docs/examples/junit4/generic/src/test/java/generic/ExecTest.java +++ b/docs/examples/junit4/generic/src/test/java/generic/ExecTest.java @@ -13,7 +13,7 @@ public class ExecTest { @Rule - public GenericContainer container = new GenericContainer<>(DockerImageName.parse("alpine:3.17")) + public GenericContainer container = new GenericContainer<>(DockerImageName.parse("alpine:3.24")) .withCommand("top"); @Test diff --git a/docs/features/configuration.md b/docs/features/configuration.md index 389936cb89f..8bbc189195e 100644 --- a/docs/features/configuration.md +++ b/docs/features/configuration.md @@ -49,7 +49,7 @@ Some companies disallow the usage of Docker Hub, but you can override `*.image` > **ryuk.container.image = testcontainers/ryuk:0.3.3** > Performs fail-safe cleanup of containers, and always required (unless [Ryuk is disabled](#disabling-ryuk)) -> **tinyimage.container.image = alpine:3.17** +> **tinyimage.container.image = alpine:3.24** > Used to check whether images can be pulled at startup, and always required (unless [startup checks are disabled](#disabling-the-startup-checks)) > **sshd.container.image = testcontainers/sshd:1.4.0** diff --git a/docs/features/creating_images.md b/docs/features/creating_images.md index 8a239d342cc..df2255b2998 100644 --- a/docs/features/creating_images.md +++ b/docs/features/creating_images.md @@ -51,7 +51,7 @@ new GenericContainer( new ImageFromDockerfile() .withDockerfileFromBuilder(builder -> builder - .from("alpine:3.17") + .from("alpine:3.24") .run("apk add --update nginx") .cmd("nginx", "-g", "daemon off;") .build())) diff --git a/modules/spock/src/test/groovy/org/testcontainers/spock/SpockTestImages.groovy b/modules/spock/src/test/groovy/org/testcontainers/spock/SpockTestImages.groovy index ce16e963548..f40fbab9ae7 100644 --- a/modules/spock/src/test/groovy/org/testcontainers/spock/SpockTestImages.groovy +++ b/modules/spock/src/test/groovy/org/testcontainers/spock/SpockTestImages.groovy @@ -6,5 +6,5 @@ interface SpockTestImages { DockerImageName MYSQL_IMAGE = DockerImageName.parse("mysql:8.0.36") DockerImageName POSTGRES_TEST_IMAGE = DockerImageName.parse("postgres:9.6.12") DockerImageName HTTPD_IMAGE = DockerImageName.parse("httpd:2.4-alpine") - DockerImageName TINY_IMAGE = DockerImageName.parse("alpine:3.17") + DockerImageName TINY_IMAGE = DockerImageName.parse("alpine:3.24") }