This is an automated email from the ASF dual-hosted git repository.

voonhous pushed a commit to branch branch-1.2.x
in repository https://gitbox.apache.org/repos/asf/hudi.git


The following commit(s) were added to refs/heads/branch-1.2.x by this push:
     new 7a46e9761ad8 fix(docker): pull MinIO images from Chainguard (#20059)
7a46e9761ad8 is described below

commit 7a46e9761ad895708bde6e5e60ada8dadc6ff77f
Author: voonhous <[email protected]>
AuthorDate: Tue Sep 29 16:07:55 2026 +0800

    fix(docker): pull MinIO images from Chainguard (#20059)
    
    * fix(docker): pull MinIO images from Chainguard
    
    MinIO turned off anonymous pulls of quay.io/minio/minio and
    quay.io/minio/mc on 2026-09-24, ten days after #19955 moved us there
    from Docker Hub. Every compose stack that starts MinIO now fails with
    "unauthorized: access to the requested resource is not authorized",
    which breaks the Trino E2E and other testcontainers integration tests.
    
    Switch to Chainguard's MinIO images, as trinodb/trino did, pinned by
    multi-arch index digest:
    - server: cgr.dev/chainguard/minio
    - client: cgr.dev/chainguard/minio-client (latest-dev build, which
      ships /bin/sh for the mc entrypoint scripts)
    
    Chainguard images run as uid 65532 and track current MinIO releases,
    so also move off the long-deprecated forms:
    - MINIO_ACCESS_KEY/MINIO_SECRET_KEY -> MINIO_ROOT_USER/PASSWORD
    - mc policy set public -> mc anonymous set public
    - chown the k8s example hostPath dir to 65532 instead of 9999
    
    * fix(docker): use floating tags for Chainguard MinIO images
    
    Chainguard's free tier only publishes latest and latest-dev, so a
    digest pin needs a manual bump to pick up fixes. Use the tags instead,
    matching how the compose files tracked MinIO's latest before:
    - cgr.dev/chainguard/minio:latest
    - cgr.dev/chainguard/minio-client:latest-dev
---
 .../docker-compose_hadoop334_hive313_spark353_amd64.yml        | 10 +++++-----
 .../docker-compose_hadoop334_hive313_spark353_arm64.yml        | 10 +++++-----
 .../docker-compose_hadoop340_hive2310_spark402_amd64.yml       | 10 +++++-----
 .../docker-compose_hadoop340_hive2310_spark402_arm64.yml       | 10 +++++-----
 .../docker-compose_hadoop340_hive2310_spark411_amd64.yml       | 10 +++++-----
 .../docker-compose_hadoop340_hive2310_spark411_arm64.yml       | 10 +++++-----
 .../docker-compose_hadoop340_hive313_spark401_amd64.yml        | 10 +++++-----
 .../docker-compose_hadoop340_hive313_spark401_arm64.yml        | 10 +++++-----
 .../hudi-examples-k8s/config/k8s/minio-standalone.yaml         |  4 ++--
 hudi-notebooks/docker-compose.yml                              |  6 +++---
 10 files changed, 45 insertions(+), 45 deletions(-)

diff --git a/docker/compose/docker-compose_hadoop334_hive313_spark353_amd64.yml 
b/docker/compose/docker-compose_hadoop334_hive313_spark353_amd64.yml
index 352407f4a6c2..16417a093152 100644
--- a/docker/compose/docker-compose_hadoop334_hive313_spark353_amd64.yml
+++ b/docker/compose/docker-compose_hadoop334_hive313_spark353_amd64.yml
@@ -242,7 +242,7 @@ services:
     volumes:
       - ${HUDI_WS}:/var/hoodie/ws
   minio:
-    image: 'quay.io/minio/minio:latest'
+    image: 'cgr.dev/chainguard/minio:latest'
     platform: linux/amd64
     hostname: minio
     container_name: minio
@@ -252,12 +252,12 @@ services:
     volumes:
       - minio-data:/data
     environment:
-      - MINIO_ACCESS_KEY=minio
-      - MINIO_SECRET_KEY=minio123
+      - MINIO_ROOT_USER=minio
+      - MINIO_ROOT_PASSWORD=minio123
       - MINIO_DOMAIN=minio
     command: server --address ":9090" --console-address ":9091" /data
   mc:
-    image: quay.io/minio/mc
+    image: cgr.dev/chainguard/minio-client:latest-dev
     platform: linux/amd64
     container_name: mc
     entrypoint: >
@@ -265,7 +265,7 @@ services:
       until (/usr/bin/mc alias set minio http://minio:9090 minio minio123 
--api S3v4) do echo '...waiting...' && sleep 1; done;
       /usr/bin/mc rm -r --force minio/warehouse;
       /usr/bin/mc mb minio/warehouse;
-      /usr/bin/mc policy set public minio/warehouse;
+      /usr/bin/mc anonymous set public minio/warehouse;
       tail -f /dev/null
       "
     depends_on:
diff --git a/docker/compose/docker-compose_hadoop334_hive313_spark353_arm64.yml 
b/docker/compose/docker-compose_hadoop334_hive313_spark353_arm64.yml
index aef85e346a65..1629e72b3f9b 100644
--- a/docker/compose/docker-compose_hadoop334_hive313_spark353_arm64.yml
+++ b/docker/compose/docker-compose_hadoop334_hive313_spark353_arm64.yml
@@ -225,7 +225,7 @@ services:
       - ${HUDI_WS}:/var/hoodie/ws
 
   minio:
-    image: 'quay.io/minio/minio:latest'
+    image: 'cgr.dev/chainguard/minio:latest'
     hostname: minio
     container_name: minio
     ports:
@@ -234,20 +234,20 @@ services:
     volumes:
       - minio-data:/data
     environment:
-      - MINIO_ACCESS_KEY=minio
-      - MINIO_SECRET_KEY=minio123
+      - MINIO_ROOT_USER=minio
+      - MINIO_ROOT_PASSWORD=minio123
       - MINIO_DOMAIN=minio
     command: server --address ":9090" --console-address ":9091" /data
 
   mc:
-    image: quay.io/minio/mc
+    image: cgr.dev/chainguard/minio-client:latest-dev
     container_name: mc
     entrypoint: >
       /bin/sh -c "
       until (/usr/bin/mc alias set minio http://minio:9090 minio minio123 
--api S3v4) do echo '...waiting...' && sleep 1; done;
       /usr/bin/mc rm -r --force minio/warehouse;
       /usr/bin/mc mb minio/warehouse;
-      /usr/bin/mc policy set public minio/warehouse;
+      /usr/bin/mc anonymous set public minio/warehouse;
       tail -f /dev/null
       "
     depends_on:
diff --git 
a/docker/compose/docker-compose_hadoop340_hive2310_spark402_amd64.yml 
b/docker/compose/docker-compose_hadoop340_hive2310_spark402_amd64.yml
index 9309333d34a6..448e856c4ad1 100644
--- a/docker/compose/docker-compose_hadoop340_hive2310_spark402_amd64.yml
+++ b/docker/compose/docker-compose_hadoop340_hive2310_spark402_amd64.yml
@@ -228,7 +228,7 @@ services:
       - ${HUDI_WS}:/var/hoodie/ws
 
   minio:
-    image: 'quay.io/minio/minio:latest'
+    image: 'cgr.dev/chainguard/minio:latest'
     hostname: minio
     container_name: minio
     ports:
@@ -237,20 +237,20 @@ services:
     volumes:
       - minio-data:/data
     environment:
-      - MINIO_ACCESS_KEY=minio
-      - MINIO_SECRET_KEY=minio123
+      - MINIO_ROOT_USER=minio
+      - MINIO_ROOT_PASSWORD=minio123
       - MINIO_DOMAIN=minio
     command: server --address ":9090" --console-address ":9091" /data
 
   mc:
-    image: quay.io/minio/mc
+    image: cgr.dev/chainguard/minio-client:latest-dev
     container_name: mc
     entrypoint: >
       /bin/sh -c "
       until (/usr/bin/mc alias set minio http://minio:9090 minio minio123 
--api S3v4) do echo '...waiting...' && sleep 1; done;
       /usr/bin/mc rm -r --force minio/warehouse;
       /usr/bin/mc mb minio/warehouse;
-      /usr/bin/mc policy set public minio/warehouse;
+      /usr/bin/mc anonymous set public minio/warehouse;
       tail -f /dev/null
       "
     depends_on:
diff --git 
a/docker/compose/docker-compose_hadoop340_hive2310_spark402_arm64.yml 
b/docker/compose/docker-compose_hadoop340_hive2310_spark402_arm64.yml
index 9309333d34a6..448e856c4ad1 100644
--- a/docker/compose/docker-compose_hadoop340_hive2310_spark402_arm64.yml
+++ b/docker/compose/docker-compose_hadoop340_hive2310_spark402_arm64.yml
@@ -228,7 +228,7 @@ services:
       - ${HUDI_WS}:/var/hoodie/ws
 
   minio:
-    image: 'quay.io/minio/minio:latest'
+    image: 'cgr.dev/chainguard/minio:latest'
     hostname: minio
     container_name: minio
     ports:
@@ -237,20 +237,20 @@ services:
     volumes:
       - minio-data:/data
     environment:
-      - MINIO_ACCESS_KEY=minio
-      - MINIO_SECRET_KEY=minio123
+      - MINIO_ROOT_USER=minio
+      - MINIO_ROOT_PASSWORD=minio123
       - MINIO_DOMAIN=minio
     command: server --address ":9090" --console-address ":9091" /data
 
   mc:
-    image: quay.io/minio/mc
+    image: cgr.dev/chainguard/minio-client:latest-dev
     container_name: mc
     entrypoint: >
       /bin/sh -c "
       until (/usr/bin/mc alias set minio http://minio:9090 minio minio123 
--api S3v4) do echo '...waiting...' && sleep 1; done;
       /usr/bin/mc rm -r --force minio/warehouse;
       /usr/bin/mc mb minio/warehouse;
-      /usr/bin/mc policy set public minio/warehouse;
+      /usr/bin/mc anonymous set public minio/warehouse;
       tail -f /dev/null
       "
     depends_on:
diff --git 
a/docker/compose/docker-compose_hadoop340_hive2310_spark411_amd64.yml 
b/docker/compose/docker-compose_hadoop340_hive2310_spark411_amd64.yml
index ef5babd57e7e..4291a2fea290 100644
--- a/docker/compose/docker-compose_hadoop340_hive2310_spark411_amd64.yml
+++ b/docker/compose/docker-compose_hadoop340_hive2310_spark411_amd64.yml
@@ -228,7 +228,7 @@ services:
       - ${HUDI_WS}:/var/hoodie/ws
 
   minio:
-    image: 'quay.io/minio/minio:latest'
+    image: 'cgr.dev/chainguard/minio:latest'
     hostname: minio
     container_name: minio
     ports:
@@ -237,20 +237,20 @@ services:
     volumes:
       - minio-data:/data
     environment:
-      - MINIO_ACCESS_KEY=minio
-      - MINIO_SECRET_KEY=minio123
+      - MINIO_ROOT_USER=minio
+      - MINIO_ROOT_PASSWORD=minio123
       - MINIO_DOMAIN=minio
     command: server --address ":9090" --console-address ":9091" /data
 
   mc:
-    image: quay.io/minio/mc
+    image: cgr.dev/chainguard/minio-client:latest-dev
     container_name: mc
     entrypoint: >
       /bin/sh -c "
       until (/usr/bin/mc alias set minio http://minio:9090 minio minio123 
--api S3v4) do echo '...waiting...' && sleep 1; done;
       /usr/bin/mc rm -r --force minio/warehouse;
       /usr/bin/mc mb minio/warehouse;
-      /usr/bin/mc policy set public minio/warehouse;
+      /usr/bin/mc anonymous set public minio/warehouse;
       tail -f /dev/null
       "
     depends_on:
diff --git 
a/docker/compose/docker-compose_hadoop340_hive2310_spark411_arm64.yml 
b/docker/compose/docker-compose_hadoop340_hive2310_spark411_arm64.yml
index ef5babd57e7e..4291a2fea290 100644
--- a/docker/compose/docker-compose_hadoop340_hive2310_spark411_arm64.yml
+++ b/docker/compose/docker-compose_hadoop340_hive2310_spark411_arm64.yml
@@ -228,7 +228,7 @@ services:
       - ${HUDI_WS}:/var/hoodie/ws
 
   minio:
-    image: 'quay.io/minio/minio:latest'
+    image: 'cgr.dev/chainguard/minio:latest'
     hostname: minio
     container_name: minio
     ports:
@@ -237,20 +237,20 @@ services:
     volumes:
       - minio-data:/data
     environment:
-      - MINIO_ACCESS_KEY=minio
-      - MINIO_SECRET_KEY=minio123
+      - MINIO_ROOT_USER=minio
+      - MINIO_ROOT_PASSWORD=minio123
       - MINIO_DOMAIN=minio
     command: server --address ":9090" --console-address ":9091" /data
 
   mc:
-    image: quay.io/minio/mc
+    image: cgr.dev/chainguard/minio-client:latest-dev
     container_name: mc
     entrypoint: >
       /bin/sh -c "
       until (/usr/bin/mc alias set minio http://minio:9090 minio minio123 
--api S3v4) do echo '...waiting...' && sleep 1; done;
       /usr/bin/mc rm -r --force minio/warehouse;
       /usr/bin/mc mb minio/warehouse;
-      /usr/bin/mc policy set public minio/warehouse;
+      /usr/bin/mc anonymous set public minio/warehouse;
       tail -f /dev/null
       "
     depends_on:
diff --git a/docker/compose/docker-compose_hadoop340_hive313_spark401_amd64.yml 
b/docker/compose/docker-compose_hadoop340_hive313_spark401_amd64.yml
index a57be2c79af6..5f1e18859ebd 100644
--- a/docker/compose/docker-compose_hadoop340_hive313_spark401_amd64.yml
+++ b/docker/compose/docker-compose_hadoop340_hive313_spark401_amd64.yml
@@ -248,7 +248,7 @@ services:
       - ${HUDI_WS}:/var/hoodie/ws
 
   minio:
-    image: 'quay.io/minio/minio:latest'
+    image: 'cgr.dev/chainguard/minio:latest'
     platform: linux/amd64
     hostname: minio
     container_name: minio
@@ -258,13 +258,13 @@ services:
     volumes:
       - minio-data:/data
     environment:
-      - MINIO_ACCESS_KEY=minio
-      - MINIO_SECRET_KEY=minio123
+      - MINIO_ROOT_USER=minio
+      - MINIO_ROOT_PASSWORD=minio123
       - MINIO_DOMAIN=minio
     command: server --address ":9090" --console-address ":9091" /data
 
   mc:
-    image: quay.io/minio/mc
+    image: cgr.dev/chainguard/minio-client:latest-dev
     platform: linux/amd64
     container_name: mc
     entrypoint: >
@@ -272,7 +272,7 @@ services:
       until (/usr/bin/mc alias set minio http://minio:9090 minio minio123 
--api S3v4) do echo '...waiting...' && sleep 1; done;
       /usr/bin/mc rm -r --force minio/warehouse;
       /usr/bin/mc mb minio/warehouse;
-      /usr/bin/mc policy set public minio/warehouse;
+      /usr/bin/mc anonymous set public minio/warehouse;
       tail -f /dev/null
       "
     depends_on:
diff --git a/docker/compose/docker-compose_hadoop340_hive313_spark401_arm64.yml 
b/docker/compose/docker-compose_hadoop340_hive313_spark401_arm64.yml
index 3cb6fe1bef76..67304a3b911f 100644
--- a/docker/compose/docker-compose_hadoop340_hive313_spark401_arm64.yml
+++ b/docker/compose/docker-compose_hadoop340_hive313_spark401_arm64.yml
@@ -236,7 +236,7 @@ services:
       - ${HUDI_WS}:/var/hoodie/ws
 
   minio:
-    image: 'quay.io/minio/minio:latest'
+    image: 'cgr.dev/chainguard/minio:latest'
     hostname: minio
     container_name: minio
     ports:
@@ -245,20 +245,20 @@ services:
     volumes:
       - minio-data:/data
     environment:
-      - MINIO_ACCESS_KEY=minio
-      - MINIO_SECRET_KEY=minio123
+      - MINIO_ROOT_USER=minio
+      - MINIO_ROOT_PASSWORD=minio123
       - MINIO_DOMAIN=minio
     command: server --address ":9090" --console-address ":9091" /data
 
   mc:
-    image: quay.io/minio/mc
+    image: cgr.dev/chainguard/minio-client:latest-dev
     container_name: mc
     entrypoint: >
       /bin/sh -c "
       until (/usr/bin/mc alias set minio http://minio:9090 minio minio123 
--api S3v4) do echo '...waiting...' && sleep 1; done;
       /usr/bin/mc rm -r --force minio/warehouse;
       /usr/bin/mc mb minio/warehouse;
-      /usr/bin/mc policy set public minio/warehouse;
+      /usr/bin/mc anonymous set public minio/warehouse;
       tail -f /dev/null
       "
     depends_on:
diff --git a/hudi-examples/hudi-examples-k8s/config/k8s/minio-standalone.yaml 
b/hudi-examples/hudi-examples-k8s/config/k8s/minio-standalone.yaml
index d04ec46f307b..46274ab89c3f 100644
--- a/hudi-examples/hudi-examples-k8s/config/k8s/minio-standalone.yaml
+++ b/hudi-examples/hudi-examples-k8s/config/k8s/minio-standalone.yaml
@@ -43,13 +43,13 @@ spec:
       initContainers:
         - name: prepare
           image: busybox:1.28
-          command: ['sh', '-c', 'mkdir -p /data/minio/ && chown 9999 
/data/minio/' ]
+          command: ['sh', '-c', 'mkdir -p /data/minio/ && chown 65532 
/data/minio/' ]
           volumeMounts:
             - mountPath: /data
               name: hostvolume
       containers:
         - name: minio
-          image: quay.io/minio/minio:RELEASE.2024-01-13T07-53-03Z
+          image: cgr.dev/chainguard/minio:latest
           command:
             - /bin/bash
             - -c
diff --git a/hudi-notebooks/docker-compose.yml 
b/hudi-notebooks/docker-compose.yml
index 0f0d938b0621..d5ec46203c7a 100644
--- a/hudi-notebooks/docker-compose.yml
+++ b/hudi-notebooks/docker-compose.yml
@@ -40,7 +40,7 @@ services:
       - hudi-datalake
 
   minio:
-    image: 'quay.io/minio/minio:latest'
+    image: 'cgr.dev/chainguard/minio:latest'
     container_name: minio
     command: server /data --console-address ":9001"
     environment:
@@ -60,7 +60,7 @@ services:
           - warehouse.minio
 
   mc:
-    image: quay.io/minio/mc:latest
+    image: cgr.dev/chainguard/minio-client:latest-dev
     container_name: mc
     depends_on:
       minio:
@@ -70,7 +70,7 @@ services:
       until (/usr/bin/mc alias set minio http://minio:9000 admin password 
--api S3v4) do echo '...waiting...' && sleep 1; done; 
       /usr/bin/mc rm -r --force minio/warehouse;
       /usr/bin/mc mb minio/warehouse;
-      /usr/bin/mc policy set public minio/warehouse;
+      /usr/bin/mc anonymous set public minio/warehouse;
       tail -f /dev/null
       "
     networks:

Reply via email to