Repository navigation
Conversation
…l on errors Current mc releases no longer have `mc config host add`, so the setup script now uses `mc alias set`. The script also stops on the first error; before, a failed setup exited 0 and left the storage tests erroring later with no clue. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
The test container waited only for the bucket setup container to start, so a failed setup still let the tests run and fail later with no clear cause. The test container now waits for bucket setup to finish successfully, and compose aborts the run with the setup container's exit status otherwise. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
In the local development stack, Django waited only for the bucket setup container to start, and the setup container did not wait for the MinIO server to be healthy. Django could therefore start against missing buckets, and setup could race the server on a cold start. The setup container now waits for the server's healthcheck, and Django (plus the services that inherit its settings) waits for setup to complete successfully, matching the CI stack. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
…October 2026 Minimus has announced that it will turn off its registry (reg.mini.dev) on 22 October 2026, so the image this branch switched to would stop being pullable in a few weeks. Both compose files now use Chainguard's MinIO image instead, which is publicly pullable and pinned by digest so it cannot change under us. The digest is a multi-arch index, so it works on amd64 and arm64. The Chainguard image bundles the server, mc and a shell, so the same image serves the server and the bucket setup container. Its entrypoint is the minio binary itself, so the server command drops the leading "minio", and the setup script is run through /bin/sh explicitly. The image runs as a non-root user by default, which cannot write to local development volumes created by the previous image, so the development server runs as root. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
…est pin Chainguard publishes only a "latest" tag publicly, so the digest is the only stable reference. The comment above each MinIO service records why the image was chosen and the two commands needed to move the pin forward. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7Xf6VPbwWtTumhjjF15g8
✅ Deploy Preview for antenna-preview canceled.
|
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe local and CI Compose configurations now use a shared pinned MinIO image and explicit service dependency conditions. The MinIO initialization script uses ChangesMinIO service setup
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The stacks now wait for successful bucket initialization, while existing buckets remain supported. No actionable merge-blocking issue was identified; normal CI checks should complete before merging. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change improves startup failure containment without adding observed network or credential exposure. Risk is low rather than minimal because the replacement image’s build provenance, runtime defaults, and persistent-data rollback compatibility are not established here. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…a third-party registry Both the local stack and the CI stack pull insectai/minio, built from pinned pgsty/silo and pgsty/mc sources by RolnickLab/minio-image and published to the sponsored insectai Docker Hub organisation, which is exempt from pull rate limits. The image runs as root like the historical official one, so the user: root override on the dev service is no longer needed. Closes #1445 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FA1nFdyB4WmWTw4syt89Yz
2330295 to
8fe1a2e
Compare
✅ Deploy Preview for antenna-ssec canceled.
|
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The pinned digest matches the published multi-platform image, and the compose and initialization changes are consistent and complete.
Review effort: Balanced
Findings: None
What changed in this PR
Switches local and CI MinIO services to the project-controlled, digest-pinned image while improving startup reliability.
Changes:
- Uses the same server/client image across both stacks.
- Waits for successful bucket initialization before Django starts.
- Makes bucket setup fail fast and uses the current
mccommands.
| File | Description |
|---|---|
docker-compose.yml |
Updates local MinIO image and startup dependencies. |
docker-compose.ci.yml |
Updates CI MinIO image and startup dependencies. |
compose/local/minio/init.sh |
Modernizes and hardens bucket initialization. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Claude says: Superseded: this commit was cherry-picked onto #1435 as |
Summary
The local development stack and the CI test job need a MinIO server and the
mcclient to stand in for S3. Since MinIO archived its open-source projects, the images we pulled have disappeared or been locked three times, and each time every open pull request went red at once. This change points both compose files at an image we build and publish ourselves, so a decision by another organisation can no longer stop our tests.The image is built by the new public repository RolnickLab/minio-image from pinned source tags of the community-maintained forks of the MinIO server and client, and published to
insectai/minioon Docker Hub. Theinsectaiorganisation is a Docker-Sponsored Open Source namespace, so anonymous pulls from CI runners are not rate limited. The binaries keep their original names, socompose/local/minio/init.shand the health checks run unchanged.This builds on #1435 (same three files). Until #1435 merges, the diff here also shows its commits; the change specific to this PR is the last commit. Backend Tests only run for pull requests into
main, which is why it targetsmaindirectly.Closes #1445
List of Changes
docker-compose.ci.ymlanddocker-compose.ymluseinsectai/minio:RELEASE.2026-09-16T00-00-00Z, pinned by digest, for both theminioserver and theminio-initbucket-setup container. The image bundles the server,mc, and a shell.user: root. The image runs as root by default, like the historical official image, so existing development volumes keep working without the override that the Chainguard image required.Detailed Description
Why not the earlier plan from #1445 (download official binaries from
dl.min.io): that site now returns410 Gonefor every MinIO binary, and the upstreamminio/minioandminio/mcrepositories are archived. The image is therefore built from source at pinned tags of pgsty/silo (server) and pgsty/mc (client), which are the actively maintained forks with published security fixes. The build verifies the checked-out commit against a pinned SHA so a moved tag fails the build rather than changing the image silently.Verified locally before opening this PR:
docker compose -f docker-compose.ci.yml up minio minio-initwith the published digest: the server becomes healthy,init.shcreates both buckets and sets them public, and an anonymousGETof an object in the test bucket succeeds.minio --versionandmc --versionreport the pinned release on bothlinux/amd64andlinux/arm64.docker pullof the digest from a logged-out Docker config succeeds, and the registry returns no rate-limit headers for this repository.The full test suite runs in this PR's CI.
🤖 Generated with Claude Code
https://claude.ai/code/session_01FA1nFdyB4WmWTw4syt89Yz
Summary by CodeRabbit