Skip to content

fix(deploy): run minio-init on the pinned MinIO image instead of pulling minio/mc - #197

Merged
krazymir merged 1 commit into
mainfrom
claude/docker-compose-deploy-error-e196c2
Oct 20, 2026
Merged

krazymir merged 1 commit into
mainfrom
claude/docker-compose-deploy-error-e196c2

Conversation

@krazymir

Copy link
Copy Markdown
Contributor

Problem

The Jenkins deploy (docker compose up --build -d on the deploy host) fails since v2.37.0 (#192):

minio-init Error pull access denied for minio/mc, repository does not exist or may require 'docker login'
Error response from daemon: pull access denied for minio/mc, ...

#192 added the one-shot minio-init service on a second MinIO image, minio/mc. MinIO no longer serves its images anonymously from Docker Hub (already recorded in deploy/IMAGES.md). The deploy host only kept working because minio/minio was cached from an earlier deploy — minio/mc was never pulled there, so the first deploy after #192 aborts before any other image finishes.

Fix

minio-init now runs on the same digest-pinned minio/minio image as the minio service. That image ships the mc client at /usr/bin/mc — at exactly the release the dropped minio/mc pin targeted (mc RELEASE.2025-08-13T08-35-41Z inside minio RELEASE.2025-09-07T16-13-09Z). The entrypoint override and the bootstrap script are unchanged, so the deploy host needs no new pull at all. CI's e2e stack already relies on the same thing (docker exec <minio> mc … in ci/e2e-shard.sh), as does the minio healthcheck (mc ready local).

  • deploy/docker-compose.yml — minio-init image → the pinned minio/minio; comment explains why.
  • deploy/IMAGES.md — drop the minio/mc row; MinIO note covers the single-image choice.
  • deployment_manual.md — local-dev bucket snippet uses minio/minio instead of minio/mc.
  • SKILLY_SPEC.md §49 — the two passages that said the mc image is pinned now say the bootstrap runs on the MinIO image.

Infra/doc-only, no app behaviour change → no APP_VERSION bump, no changelog entry.

Verification

  • docker compose -f deploy/docker-compose.yml config validates; minio-init.image renders to the pinned minio/minio.
  • Ran the rendered minio-init script on minio/minio (same digest) against a throwaway MinIO: first run creates bucket + policy + user and attaches the policy; second run is idempotent (policy … already attached); the scoped account lists the bucket.
  • Not verified: the Jenkins deploy itself — please re-run the pipeline.

Caveat: the deploy host still depends on its cached minio/minio layer. A fresh host or a MinIO bump needs the internal mirror deploy/IMAGES.md prescribes.

🤖 Generated with Claude Code

…ing minio/mc

The deploy host cannot pull minio/mc (MinIO serves no images anonymously from
Docker Hub any more), so every `docker compose up` since v2.37.0 aborted on the
minio-init one-shot. The digest-pinned minio/minio image already ships the mc
client at the same release, and the deploy host already has that image cached,
so minio-init now runs on it. Docs, IMAGES.md and the spec's s49 passages follow.

Infra/doc-only: no APP_VERSION bump, no changelog entry.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@krazymir
krazymir merged commit d932513 into main Oct 20, 2026
9 checks passed
@krazymir
krazymir deleted the claude/docker-compose-deploy-error-e196c2 branch October 20, 2026 06:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants