Skip to content

[fix](ci) Pull the MinIO images from quay.io instead of Docker Hub - #67897

Merged
hello-stephen merged 1 commit into
apache:masterfrom
morningman:minio-images-from-quay
Sep 12, 2026
Merged

[fix](ci) Pull the MinIO images from quay.io instead of Docker Hub#67897
hello-stephen merged 1 commit into
apache:masterfrom
morningman:minio-images-from-quay

Conversation

@morningman

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: none

Problem Summary:

Since today every Doris_DorisCloudRegression_VaultP0 run dies in the run step before executing a single test, e.g. #67883 (TeamCity build 39010) and #67881 / #67882 / #67885 / #67886 / #67892 / #67893:

doris-external--minio Pulling
doris-external--minio Error
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
ERROR: start minio docker twice failed

MinIO stopped publishing container images in October 2025 (the project is a source-only distribution now, see minio/minio#21647) and the minio/minio and minio/mc repositories have since been removed from Docker Hub altogether (https://hub.docker.com/v2/repositories/minio/minio/ answers 404, same for minio/mc). The few VaultP0 runs that still pass do so only on agents that have the image cached locally (their logs have no Pulling line). The iceberg, hudi and polaris third-party fixtures, test_file_cache_warmup_read_metrics_docker (which runs a docker run minio/minio itself), the all-in-one cloud.yml and the datalake samples reference the same images and are one cache eviction away from the same failure.

quay.io/minio/minio and quay.io/minio/mc still serve every tag we use -- RELEASE.2024-11-07T00-52-20Z, RELEASE.2025-01-20T14-49-07Z, mc RELEASE.2025-01-17T23-25-50Z, the two 2022 tags of the samples and latest -- and MinIO keeps pushing hotfix tags there (latest one dated 2026-04). docker manifest inspect resolves all of them (amd64 / arm64 / ppc64le). So every reference gets the quay.io/ prefix and the tags stay exactly as they were: same builds, different registry. The CI agents already pull from quay.io for the OceanBase fixture.

A longer-term option is to mirror these three tags into the project's own doristhirdpartydocker namespace, which already hosts hive / zookeeper / kafka / trinodb; that needs someone with push access to that Docker Hub organization and can follow separately.

Release note

None

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:

    The Vault P0 and external pipelines of this PR are the test: they start these containers.

  • Behavior changed:

    • No.
    • Yes.
  • Does this need documentation?

    • No.
    • Yes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QFwVuLmK8e7sEdKVKB6QZJ

MinIO stopped publishing container images in October 2025 (the project
is a source-only distribution now, minio/minio#21647) and the minio/minio
and minio/mc repositories have since been removed from Docker Hub
altogether: every pull now fails with "pull access denied for
minio/minio, repository does not exist or may require 'docker login'".
The Vault P0 pipeline starts a MinIO container for the storage vault and
dies in that pull before running a single test; the iceberg, hudi and
polaris fixtures, the all-in-one cloud compose and the datalake samples
reference the same images and only keep working on hosts that still have
them cached.

quay.io/minio/minio and quay.io/minio/mc still serve the same tags (the
same builds, checked by manifest), so every reference gets the quay.io
prefix; the tags do not change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QFwVuLmK8e7sEdKVKB6QZJ
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@morningman

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen
hello-stephen merged commit c73c8e2 into apache:master Sep 12, 2026
37 of 38 checks passed
hello-stephen added a commit that referenced this pull request Sep 13, 2026
Related PR: #67897

Problem Summary:

PR #67897 temporarily moved the MinIO server and client images from
Docker Hub to Quay.io after the upstream Docker Hub repositories were
removed. The required image manifests have now been mirrored into the
Doris-owned public `doristhirdpartydocker` namespace.

This PR updates all 16 references in 9 files to use
`doristhirdpartydocker/minio` and `doristhirdpartydocker/mc`. Existing
release tags, startup arguments, environment variables, and test logic
remain unchanged. The two previously untagged sample images are pinned
to release tags whose manifests match the current Quay.io `latest`
images.
yuqi1129 pushed a commit to apache/gravitino that referenced this pull request Sep 14, 2026
### What changes were proposed in this pull request?

Point `MinIOContainer.DEFAULT_IMAGE` at
`quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z`. It's the same MinIO
release, pulled from MinIO's quay.io organization instead of Docker Hub.

### Why are the changes needed?

Docker Hub removed the `minio/minio` repository, so every integration
test that starts `MinIOContainer` fails with `pull access denied`. That
includes `FilesetS3TokenConnectionIT` in Backend Integration Test and
`IcebergRESTMinIOTokenAuthorizationIT`. This is a temporary fix, the
same one apache/iceberg#18071 and apache/doris#67897 merged. Replacing
MinIO is tracked in the discussion on #13111.

Fix: #13111

### Does this PR introduce _any_ user-facing change?

No. Test infrastructure only.

### How was this patch tested?

- `docker pull minio/minio:RELEASE.2025-09-07T16-13-09Z` fails with
`pull access denied`; `docker pull
quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z` succeeds.
- `./gradlew :integration-test-common:spotlessCheck
:integration-test-common:compileTestJava` passes.
- CI on this PR runs `FilesetS3TokenConnectionIT`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants