test: run MinIO from bitnamilegacy/minio; Quay now requires a login - #1927
Conversation
MinIO made quay.io/minio/minio require authentication on 2026-09-24, so `docker compose pull` of the test archive fails with "unauthorized" and every Docker-backed test errors in setup (here and in downstream users of this compose file, e.g. backups2datalad). Switch to the frozen Bitnami build dandi-archive's backend/frontend CI already uses. It starts the server itself with the same MINIO_ROOT_* credentials, so `command` goes; the curl healthcheck still works. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KoaLJfNiVVnwSDHNMg2bpK
…leased MinIO made quay.io/minio/minio require a login on 2026-09-24, so pulling dandi-cli's test docker-compose stack fails with "unauthorized" and every Docker-backed test errors in setup. The fix belongs in dandi-cli (dandi/dandi-cli#1927) but reaches us only with a release, so meanwhile layer a compose override over upstream's file via COMPOSE_FILE: same image dandi-archive's CI uses, `command`/`tty` reset. It is a no-op once the upstream file carries the same change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KoaLJfNiVVnwSDHNMg2bpK
…leased MinIO made quay.io/minio/minio require a login on 2026-09-24, so pulling dandi-cli's test docker-compose stack fails with "unauthorized" and every Docker-backed test errors in setup. The fix belongs in dandi-cli (dandi/dandi-cli#1927) but reaches us only with a release, so meanwhile layer a compose override over upstream's file via COMPOSE_FILE: same image dandi-archive's CI uses, `command`/`tty` reset. It is a no-op once the upstream file carries the same change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KoaLJfNiVVnwSDHNMg2bpK (cherry picked from commit 7b39464)
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1927 +/- ##
==========================================
- Coverage 78.14% 78.11% -0.03%
==========================================
Files 91 91
Lines 13944 13944
==========================================
- Hits 10896 10893 -3
- Misses 3048 3051 +3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
CI note on Proposed fix, kept separate so this PR stays a one-line change: in
Generated by Claude Code |
The integration job runs dandi-cli's test suite with dandi-cli's own docker-compose.yml, which still pulls quay.io/minio/minio; since MinIO made that require a login on 2026-09-24 every setup fails at `manage.py migrate`. Layer bitnamilegacy/minio over it via COMPOSE_FILE until dandi/dandi-cli#1927 is in dandi-cli's master and a release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KoaLJfNiVVnwSDHNMg2bpK
|
🚀 PR was released in |
On 2026-09-24 MinIO made
quay.io/minio/minio(andminio/mc) require authentication. Since then,docker compose pullof the test archive fails withminio Error unauthorized: access to the requested resource is not authorized, and every Docker-backed test errors during setup. This affects this repo's tests and downstream users of this compose file; backups2datalad CI is red for this reason (dandi/backups2datalad#124, dandi/backups2datalad#125). It is the follow-up to #1921, which moved us to Quay afterminio/miniowas deleted from Docker Hub.Change
dandi/tests/data/dandiarchive-docker/docker-compose.ymltobitnamilegacy/minio:latest. This is the image dandi-archive's backend/frontend CI already uses./bitnami/minio/data, and takes the sameMINIO_ROOT_USER/MINIO_ROOT_PASSWORD. So thecommandoverride goes, and thettythat was only there for printing credentials goes too.curlhealthcheck still works, since the image shipscurlandmc.This image is frozen too. dandi/dandi-infrastructure#289 is about hosting a copy of our own; once that exists, this line should point there.
Testing
docker compose pullof this compose file succeeds.docker compose up --wait minioreports the service healthy, and/minio/health/livereturns 200.127.0.0.1:9000could create the bucket, enable versioning, and put/get an object.djangocontainer can't reach PyPI from my sandbox, which has nothing to do with MinIO. CI here will exercise it.Suggested label:
tests.🤖 Generated with Claude Code
https://claude.ai/code/session_01KoaLJfNiVVnwSDHNMg2bpK
Generated by Claude Code