Skip to content

fix(ci): pull MinIO from Chainguard — quay.io/minio/minio is no longer public either - #4378

Merged
aryanmehrotra merged 1 commit into
developmentfrom
fix/ci-minio-chainguard
Sep 25, 2026
Merged

aryanmehrotra merged 1 commit into
developmentfrom
fix/ci-minio-chainguard

Conversation

@aryanmehrotra

Copy link
Copy Markdown
Member

Why

Every go.yml run is failing at Start MinIO (exit 125):

docker: Error response from daemon: unauthorized: access to the requested resource is not authorized

#4208 moved this step from Docker Hub to quay.io/minio/minio 11 days ago. MinIO has since closed quay.io to anonymous pulls too, for every tag and for the pinned digest.

What's still pullable (checked anonymously, 2026-09-25)

Source Result
docker.io/minio/minio ❌ requested access to the resource is denied
quay.io/minio/minio ❌ 401 unauthorized (repo, tag, digest)
docker.io/bitnami/minio ❌ manifest unknown
dl.min.io binaries ❌ 410 Gone
cgr.dev/chainguard/minio ✅ linux/amd64 + arm64

Change

  • .github/workflows/go.yml: image → cgr.dev/chainguard/minio@sha256:bd014394…65ae1, still pinned by digest. It is real MinIO built from upstream AGPL source (RELEASE.2026-09-22T19-25-18Z), entrypoint /usr/bin/minio, so server /data, the env and the /minio/health/live poll are unchanged.
  • examples/using-s3-filestore/README.md: pointed at the same dead quay.io image; updated.

Verified

Ran the pinned image with server /data and the step's env, then in examples/using-s3-filestore:

S3_REQUIRE_MINIO=true go test -count=1 -v ./...
--- PASS: TestS3FileStore_RoundTrip (1.79s)
--- PASS: TestS3FileStore_CopyAndReadAt (0.44s)
ok  	gofr.dev/examples/using-s3-filestore

The #3804 guard stays required: S3_REQUIRE_MINIO and the fail-loud readiness loop are untouched.

Risk

Chainguard's free tier only publishes latest. A digest pin keeps us on a fixed build, but if Chainguard ever garbage-collects that digest this step fails loudly (same as today) rather than silently skipping — bump the digest then.

…r public either

#4208 moved the "Start MinIO" step from docker.io to quay.io after Docker
Hub stopped serving minio/minio. quay.io/minio/minio now answers
"unauthorized" to anonymous pulls for every tag and for the pinned digest,
so every go.yml run fails at "Start MinIO" with exit 125.

Checked anonymously on 2026-09-25:
- docker.io/minio/minio   -> requested access to the resource is denied
- quay.io/minio/minio     -> 401 unauthorized (repo, tag and digest)
- docker.io/bitnami/minio -> manifest unknown
- dl.min.io binaries      -> 410 Gone
- cgr.dev/chainguard/minio -> pullable, linux/amd64 + arm64

cgr.dev/chainguard/minio is MinIO built from upstream AGPL source
(RELEASE.2026-09-22T19-25-18Z at the pinned digest) with /usr/bin/minio
as its entrypoint, so the existing `server /data` args and the
/minio/health/live readiness poll are unchanged. Still pinned by digest.

Verified: ran the pinned image with `server /data` and the step's env,
then `S3_REQUIRE_MINIO=true go test ./...` in examples/using-s3-filestore:
TestS3FileStore_RoundTrip and TestS3FileStore_CopyAndReadAt both PASS.

The example README pointed users at the same dead quay.io image; updated.
@aryanmehrotra
aryanmehrotra merged commit 6cdff5a into development Sep 25, 2026
19 checks passed
@aryanmehrotra
aryanmehrotra deleted the fix/ci-minio-chainguard branch September 25, 2026 05:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants