Skip to content

Pull minio from quay.io instead of Docker Hub - #7837

Open
CharlieTLe wants to merge 2 commits into
masterfrom
fix-integration-docker-login
Open

Pull minio from quay.io instead of Docker Hub#7837
CharlieTLe wants to merge 2 commits into
masterfrom
fix-integration-docker-login

Conversation

@CharlieTLe

@CharlieTLe CharlieTLe commented Sep 12, 2026

Copy link
Copy Markdown
Member

Problem

Every integration leg on every PR is failing at Preload Images:

Error response from daemon: pull access denied for minio/minio, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
WARNING: 'docker pull minio/minio:RELEASE.2024-05-28T17-19-04Z' failed (attempt 1/3); retrying in 5s...
...
ERROR: 'docker pull minio/minio:RELEASE.2024-05-28T17-19-04Z' failed after 3 attempts.
##[error]Process completed with exit code 1.

minio/minio is the first Docker Hub pull in that step, so no leg gets past it — all 24 fail in about 30s. It reproduces on a PR that only touches CHANGELOG.md (#7836), so it is not specific to any change under test. master was last green at 4061a3d (2026-09-11 16:42 UTC).

Cause

Not a rate limit. I first pushed a docker login before the preload step to rule that out. The login succeeded:

Login to Docker Hub    Login Succeeded
Preload Images         Error response from daemon: pull access denied for minio/minio ...

The pull is still denied with valid credentials, so docker.io/minio/minio is no longer accessible — not throttled.

Fix

MinIO publishes the identical image to quay.io. quay.io/minio/minio:RELEASE.2024-05-28T17-19-04Z is public and is a manifest list with 8 children, so it covers both the amd64 and arm64 runners:

$ curl -s 'https://quay.io/api/v1/repository/minio/minio/tag/?onlyActiveTags=true&filter_tag_name=like:RELEASE.2024-05-28T17-19-04Z'
RELEASE.2024-05-28T17-19-04Z  sha256:391d1d45fdbe7  manifest list  8 children

Commit 1 points the integration tests, the CI preload list, and the three development/tsdb-blocks-storage-s3* docker-compose stacks at quay.io. The tag is unchanged, so no behaviour changes. The dev stacks are broken by the same cause today.

Commit 2 keeps the docker login, as hardening rather than as the fix. Preload Images still pulls consul, memcached, redis and postgres from Docker Hub. #7464 removed the Install Docker Client step from this job, and that script is where the docker login happens, so those pulls have been anonymous ever since and are exposed to the anonymous rate limit. Fork PRs get no secrets, so the step skips the login there and leaves those pulls anonymous rather than failing.

Why now

v1.22.0-rc.0 is scheduled for today per RELEASE.md. integration is a required status check, so this blocks the release cut as well as every other PR.

This branch is pushed to the main repo rather than a fork so its own CI has the secrets and can exercise commit 2.

@CharlieTLe
CharlieTLe requested a review from a team as a code owner September 12, 2026 19:17
Every integration leg is failing at Preload Images:

  Error response from daemon: pull access denied for minio/minio,
  repository does not exist or may require 'docker login':
  denied: requested access to the resource is denied

minio/minio is the first Docker Hub pull in the step, so no leg gets past
it and all 24 fail in about 30 seconds. A CHANGELOG-only pull request
reproduces it, so this is not specific to any change under test. master
was last green at 4061a3d.

This is not a rate limit: the same pull fails right after a successful
'docker login' with the repository credentials. The docker.io/minio/minio
repository is simply no longer accessible.

MinIO still publishes the identical image to quay.io. quay.io/minio/minio
:RELEASE.2024-05-28T17-19-04Z is public and is a manifest list with 8
children, so it covers both the amd64 and arm64 runners.

Point the integration tests, the CI preload list, and the three
development docker-compose stacks at quay.io. The tag is unchanged, so no
behaviour changes.

Signed-off-by: Charlie Le <charlie_le@apple.com>
Preload Images still pulls consul, memcached, redis and postgres from
Docker Hub. #7464 removed the Install Docker Client step from this job,
and that script is where 'docker login' runs, so those pulls have been
anonymous since and are subject to the anonymous rate limit.

Log in explicitly, matching what the build job does. Pull requests from
forks have no secrets, so skip the login there and leave those pulls
anonymous instead of failing the step.

This is hardening, not the fix for the current breakage: minio failed
even when authenticated.

Signed-off-by: Charlie Le <charlie_le@apple.com>
@CharlieTLe CharlieTLe changed the title Log in to Docker Hub before preloading integration test images Pull minio from quay.io instead of Docker Hub Sep 12, 2026
@CharlieTLe
CharlieTLe force-pushed the fix-integration-docker-login branch from 8852753 to 69accec Compare September 12, 2026 19:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant