MinIO (Tier 0 – Foundation)¶
Purpose: S3-compatible object storage for the Lake (bronze/silver/gold).
Image¶
- Docker image:
minio/minio:RELEASE.2025-09-07T16-13-09Z(pinned indocker-compose.yml).
Configuration¶
- Environment from
.env:MINIO_ROOT_USER,MINIO_ROOT_PASSWORD,MINIO_SERVER_URL,MINIO_BROWSER_REDIRECT_URL,MINIO_PORT_API,MINIO_PORT_CONSOLE. - Bind mount:
${DATA_DIR}/minio→/data(contains thelakehouseandstoragebuckets). - Policy template:
/templates/minio/policy-readonly.json.tpl→/config/minio/policy-readonly.json. - Healthcheck:
GET /minio/health/liveon container. - MinIO Client (mc) used inside the Compose network with a pinned image for tests/backups.
Default Buckets¶
MINIO_BUCKET(defaultlakehouse): Delta Lake warehouse ats3a://lakehouse/warehouse.MINIO_STORAGE_BUCKET(defaultstorage): Staging bucket for CSV/XLSX/ZIP files prior to ingestion.
How it is generated¶
- Target:
make config-miniorenders templates into/config/minio/using envsubst (local or Docker fallback).
Validate¶
# Wait for health
make health-minio
# Smoke test: create bucket, upload and read a file
make test-minio
# Persistence: restart and verify uploaded object
make persist-minio
Useful endpoints¶
- API:
http://localhost:9000 - Console/UI:
http://localhost:9001