Skip to content

fix(tests): MiniIO image replacement - #1214

Merged
mbevc1 merged 1 commit into
mainfrom
20260925_fix_mino
Sep 25, 2026
Merged

mbevc1 merged 1 commit into
mainfrom
20260925_fix_mino

Conversation

@mbevc1

@mbevc1 mbevc1 commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Upstream is deprecated and temporary switching to Chainguard image while we find a permanent replacement.

Checklist

@mbevc1 mbevc1 added the fix label Sep 25, 2026
@mbevc1 mbevc1 changed the title fix: MiniIO image replacement fix(tests): MiniIO image replacement Sep 25, 2026
@mbevc1
mbevc1 enabled auto-merge (squash) September 25, 2026 09:12
@claude

claude Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @mbevc1's task in 2m 1s —— View job


PR Review: MinIO image replacement

  • Gather context (PR diff, docker-compose.yml, bin/reset-or-start-server.sh, CI workflows)
  • Understand the request — code review
  • Static analysis
  • Review the change
  • Post feedback

Verdict

The change looks correct and is a sensible temporary fix. One inline comment on image pinning; nothing blocking.

Static analysis

No Go files changed, so go build / go vet / go mod tidy are not meaningful signals for this PR. The relevant gate is make test_integration, which runs docker compose up and waits on localhost:9010/minio/health/live (bin/reset-or-start-server.sh:43) — CI exercises this container end to end via make test_integration_full (.github/workflows/test.yml:179). I could not verify the image at runtime — the sandbox blocks docker pull and outbound network, so I couldn't confirm the Chainguard image internals. A green CI run on this PR is the real check.

What's good

  • Correctly dropped RUN chmod +x /usr/bin/mc. COPY --from preserves the source file mode, so the chmod is redundant — and it had to go, since Chainguard's non-dev builder stage has no shell for RUN to use. Easy detail to get wrong.
  • Multi-stage copy is the right shape. quay.io/minio/minio bundled mc; Chainguard splits minio and minio-client into separate images, and a build-stage copy is the cleanest way to reassemble what docker-compose.yml:89 needs (mc mb ... && minio server ...) without a package manager.
  • Kept /usr/bin/mc as the destination path, so docker-compose.yml needs no change. Nice minimal blast radius.
  • Trailing newline added — the old file had none.

Points to confirm on the CI run

  1. mc source path. If cgr.dev/chainguard/minio-client puts the binary somewhere other than /usr/bin/mc, the COPY fails at build time — loud, not silent, so low risk.
  2. Runtime user. quay.io/minio/minio ran as root; Chainguard images commonly default to nonroot (UID 65532). The command writes to /data and mc wants a config dir under $HOME. Neither is backed by a named volume (docker compose down -v in the Makefile implies ephemeral state), so if permissions bite, it'll show up as the /minio/health/live wait timing out rather than anything subtle.

Note on scope

cgr.dev/chainguard/minio:latest-dev is a development variant — it carries a shell and package manager, so it's a larger surface than the non-dev image. That's fine here: this container only exists in docker-compose.yml for local and CI integration tests and is never shipped. Worth keeping in mind if the "temporary" replacement outlives its welcome, since the -dev dependency comes from the compose entrypoint rather than from MinIO itself.

Inline comment

Comment thread minio/Dockerfile
@mbevc1
mbevc1 merged commit 3b50e33 into main Sep 25, 2026
23 of 27 checks passed
@mbevc1
mbevc1 deleted the 20260925_fix_mino branch September 25, 2026 10:13
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.

2 participants