Skip to content

Pull MinIO from pgsty/silo instead of building it from source - #5

Merged
sgamelin merged 1 commit into
mainfrom
ci/pgsty-silo
Sep 29, 2026
Merged

sgamelin merged 1 commit into
mainfrom
ci/pgsty-silo

Conversation

@sgamelin

Copy link
Copy Markdown
Collaborator

Building MinIO and mc from source (#4) makes every docker compose up download and compile about 241 Go modules. That's about 2 minutes on a typical runner and up to 9½ on a slow one. On 2026-09-29 it also failed nisshi-io/nisshi's merge queue: all three failed smoke legs died in go build on stream error: INTERNAL_ERROR from proxy.golang.org (run).

This switches the minio service to pgsty/silo, a community-maintained AGPLv3 fork of MinIO that still publishes images, and removes etc/minio/Dockerfile.

  • Pinned to RELEASE.2026-09-16T00-00-00Z by index digest. It covers linux/amd64 and linux/arm64, the two runner types in this matrix.
  • The image has mc at /usr/bin/mc and has bash, so the compose healthcheck, the mc steps in ci.yml, the justfile recipes and bin/up run unchanged. Its entrypoint maps the existing server /data ... command to its silo binary.
  • Pulling a public image means we don't redistribute MinIO ourselves, so there are no AGPL obligations on our side, unlike publishing our own build.

Verification

Locally, against nisshi-io/nisshi's identical compose service:

  • The image is 52 MB and pulled in about 3 s.
  • The compose healthcheck, mc ready local, mc alias set and mc mb local/nisshi all pass.
  • Conditional writes, which nisshi's S3 engine relies on, work: a second PutObject with If-None-Match: * and one with a wrong If-Match both return PreconditionFailed, and the correct If-Match succeeds.
  • ghcr.io/nisshi-io/nisshi:main on --storage-engine s3://nisshi/ created a topic and produced 500 idempotent records, and a consumer group read all 500 back.

The s3://nisshi/ legs of this PR's CI run the full compose stack and the bats suite against silo.

Expected failures: the postgres:// legs

They fail on main too (run). The cause is the etc/initdb.d/010-schema.sql drift described in #4, not this change.

Follow-up

nisshi-io/nisshi's smoke job pins this repo by commit. Once this merges, a nisshi PR will move that pin to the merge commit, alongside the same compose change in nisshi.

🤖 Generated with Claude Code

Building MinIO and mc from source makes every compose run download and
compile about 241 Go modules. That takes about 2 minutes on a typical
runner and up to 9.5 on a slow one, and on 2026-09-29 it failed
nisshi-io/nisshi's merge queue when proxy.golang.org returned stream
errors mid-download.

pgsty/silo is a community-maintained AGPLv3 fork of MinIO that still
publishes multi-arch images. It ships mc at /usr/bin/mc and bash, so the
compose healthcheck and the mc commands in CI and the justfile run
unchanged. Pinned by digest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sgamelin
sgamelin merged commit 914623a into main Sep 29, 2026
6 of 12 checks passed
@sgamelin
sgamelin deleted the ci/pgsty-silo branch September 29, 2026 21:08
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.

1 participant