diff --git a/docs/modules/minio.md b/docs/modules/minio.md
index 165f760425c..1fc8a125da1 100644
--- a/docs/modules/minio.md
+++ b/docs/modules/minio.md
@@ -2,6 +2,13 @@
Testcontainers can be used to automatically instantiate and manage [MinIO](https://min.io) containers.
+!!! note
+ Upstream MinIO stopped publishing free community builds in late 2025 and archived the
+ [minio/minio](https://github.com/minio/minio) repository in 2026; the `minio/minio` image is no longer available on
+ Docker Hub. The module therefore also accepts [Silo](https://github.com/pgsty/silo) (`pgsty/silo`), a
+ community-maintained, AGPL-licensed fork of MinIO by the [Pigsty](https://pigsty.io) project, which is used in the
+ examples below. See the [Silo manifesto](https://silo.pigsty.io/about/manifesto/) for background on the fork.
+
## Usage example
Create a `MinIOContainer` to use it in your tests:
diff --git a/modules/minio/src/main/java/org/testcontainers/containers/MinIOContainer.java b/modules/minio/src/main/java/org/testcontainers/containers/MinIOContainer.java
index dfd499194ef..af1150e2ccf 100644
--- a/modules/minio/src/main/java/org/testcontainers/containers/MinIOContainer.java
+++ b/modules/minio/src/main/java/org/testcontainers/containers/MinIOContainer.java
@@ -9,7 +9,7 @@
/**
* Testcontainers implementation for MinIO.
*
- * Supported image: {@code minio/minio}
+ * Supported images: {@code minio/minio}, {@code pgsty/silo}
*
* Exposed ports:
*
@@ -21,6 +21,8 @@ public class MinIOContainer extends GenericContainer {
private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("minio/minio");
+ private static final DockerImageName SILO_IMAGE_NAME = DockerImageName.parse("pgsty/silo");
+
private static final int MINIO_S3_PORT = 9000;
private static final int MINIO_UI_PORT = 9001;
@@ -47,7 +49,7 @@ public MinIOContainer(final String dockerImageName) {
*/
public MinIOContainer(final DockerImageName dockerImageName) {
super(dockerImageName);
- dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME);
+ dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME, SILO_IMAGE_NAME);
withExposedPorts(MINIO_S3_PORT, MINIO_UI_PORT);
withCommand("server", "--console-address", ":" + MINIO_UI_PORT, "/data");
waitingFor(
diff --git a/modules/minio/src/test/java/org/testcontainers/containers/MinIOContainerTest.java b/modules/minio/src/test/java/org/testcontainers/containers/MinIOContainerTest.java
index 0998243de8e..8a60f8f9db2 100644
--- a/modules/minio/src/test/java/org/testcontainers/containers/MinIOContainerTest.java
+++ b/modules/minio/src/test/java/org/testcontainers/containers/MinIOContainerTest.java
@@ -18,7 +18,7 @@ class MinIOContainerTest {
void testBasicUsage() throws Exception {
try (
// minioContainer {
- MinIOContainer container = new MinIOContainer("minio/minio:RELEASE.2023-09-04T19-57-37Z");
+ MinIOContainer container = new MinIOContainer("pgsty/silo:RELEASE.2026-09-16T00-00-00Z");
// }
) {
container.start();
@@ -58,7 +58,7 @@ void testBasicUsage() throws Exception {
@Test
void testDefaultUserPassword() {
- try (MinIOContainer container = new MinIOContainer("minio/minio:RELEASE.2023-09-04T19-57-37Z")) {
+ try (MinIOContainer container = new MinIOContainer("pgsty/silo:RELEASE.2026-09-16T00-00-00Z")) {
container.start();
assertThat(container.getUserName()).isEqualTo("minioadmin");
assertThat(container.getPassword()).isEqualTo("minioadmin");
@@ -69,7 +69,7 @@ void testDefaultUserPassword() {
void testOverwriteUserPassword() {
try (
// minioOverrides {
- MinIOContainer container = new MinIOContainer("minio/minio:RELEASE.2023-09-04T19-57-37Z")
+ MinIOContainer container = new MinIOContainer("pgsty/silo:RELEASE.2026-09-16T00-00-00Z")
.withUserName("testuser")
.withPassword("testpassword");
// }