From cc1f462cb1d042a1135edcacc7fde80b2ed373f6 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 5 Oct 2026 10:37:23 +0000 Subject: [PATCH] fix(compose): pull S3 storage from rustfs after MinIO left Docker Hub MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Release smoke failed pulling minio/minio:latest — the repository is gone (HTTP 404) and quay.io/minio/minio anonymous pulls 401. Swap the bundled compose services to rustfs/rustfs:1.0.1 (public, S3 on :9000). Keep the service name minio so AF_STACK_S3_ENDPOINT=minio:9000 and existing .env keys still work. Signed-off-by: Cursor Agent Co-authored-by: Santosh kumar --- docker-compose.release-smoke.yml | 16 +++++++++++----- docker-compose.yml | 17 ++++++++++++----- docs/adapters/storage.md | 2 +- examples/01-notable/docker-compose.yml | 15 ++++++++++----- .../internal/starter/assets/docker-compose.yml | 17 ++++++++++++----- 5 files changed, 46 insertions(+), 21 deletions(-) diff --git a/docker-compose.release-smoke.yml b/docker-compose.release-smoke.yml index 170d7fb6..1a67a3d2 100644 --- a/docker-compose.release-smoke.yml +++ b/docker-compose.release-smoke.yml @@ -32,17 +32,23 @@ services: timeout: 3s retries: 20 + # MinIO Community images left Docker Hub (and Quay anonymous pulls 401). + # rustfs/rustfs is a public S3-compatible drop-in on :9000. The service + # name stays `minio` so AF_STACK_S3_ENDPOINT=minio:9000 keeps working. minio: - image: minio/minio:latest - command: server /data + image: rustfs/rustfs:1.0.1 + command: ["/data"] environment: - MINIO_ROOT_USER: minio - MINIO_ROOT_PASSWORD: minio-secret + RUSTFS_ACCESS_KEY: minio + RUSTFS_SECRET_KEY: minio-secret + RUSTFS_ADDRESS: ":9000" + RUSTFS_CONSOLE_ENABLE: "false" healthcheck: - test: ["CMD", "mc", "ready", "local"] + test: ["CMD", "curl", "-fsS", "http://127.0.0.1:9000/health"] interval: 10s timeout: 5s retries: 10 + start_period: 15s runtime: image: ghcr.io/agent-field/af-stack-runtime:${AF_STACK_VERSION:-latest} diff --git a/docker-compose.yml b/docker-compose.yml index c5180ebb..8e26f294 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -35,22 +35,29 @@ services: timeout: 3s retries: 10 + # MinIO Community images left Docker Hub (and Quay anonymous pulls 401). + # rustfs/rustfs is a public S3-compatible drop-in on :9000. The service + # name stays `minio` so AF_STACK_S3_ENDPOINT=minio:9000 keeps working. minio: - image: minio/minio:latest - command: server /data --console-address ":9001" + image: rustfs/rustfs:1.0.1 + command: ["/data"] environment: - MINIO_ROOT_USER: ${AF_STACK_S3_ACCESS_KEY:-minio} - MINIO_ROOT_PASSWORD: ${AF_STACK_S3_SECRET_KEY:-minio-secret} + RUSTFS_ACCESS_KEY: ${AF_STACK_S3_ACCESS_KEY:-minio} + RUSTFS_SECRET_KEY: ${AF_STACK_S3_SECRET_KEY:-minio-secret} + RUSTFS_ADDRESS: ":9000" + RUSTFS_CONSOLE_ADDRESS: ":9001" + RUSTFS_CONSOLE_ENABLE: "true" ports: - "${MINIO_PORT:-9000}:9000" - "${MINIO_CONSOLE_PORT:-9001}:9001" volumes: - minio-data:/data healthcheck: - test: ["CMD", "mc", "ready", "local"] + test: ["CMD", "curl", "-fsS", "http://127.0.0.1:9000/health"] interval: 10s timeout: 5s retries: 5 + start_period: 15s # LiteLLM Proxy — handles every upstream LLM provider so the runtime # doesn't ship a hand-rolled client per vendor. BackAI forwards diff --git a/docs/adapters/storage.md b/docs/adapters/storage.md index 976d8a7d..1f32c803 100644 --- a/docs/adapters/storage.md +++ b/docs/adapters/storage.md @@ -14,7 +14,7 @@ Supported today: | Adapter | Use | |---|---| -| `minio` | Local development and self-hosted S3-compatible storage | +| `minio` | Local development and self-hosted S3-compatible storage. Bundled compose files run `rustfs/rustfs` under the service name `minio` — MinIO Community images left Docker Hub. | | `s3` | AWS S3 or compatible managed object storage (also covers R2 / GCS / Azure Blob via the S3 API) | | `remote` | An out-of-process storage adapter speaking the [remote protocol](PROTOCOL.md) | diff --git a/examples/01-notable/docker-compose.yml b/examples/01-notable/docker-compose.yml index e9d9b79e..7fd7425f 100644 --- a/examples/01-notable/docker-compose.yml +++ b/examples/01-notable/docker-compose.yml @@ -38,22 +38,27 @@ services: timeout: 3s retries: 10 + # MinIO Community images left Docker Hub. rustfs/rustfs speaks S3 on :9000. minio: - image: minio/minio:latest - command: server /data --console-address ":9001" + image: rustfs/rustfs:1.0.1 + command: ["/data"] environment: - MINIO_ROOT_USER: ${AF_STACK_S3_ACCESS_KEY:-minio} - MINIO_ROOT_PASSWORD: ${AF_STACK_S3_SECRET_KEY:-minio-secret} + RUSTFS_ACCESS_KEY: ${AF_STACK_S3_ACCESS_KEY:-minio} + RUSTFS_SECRET_KEY: ${AF_STACK_S3_SECRET_KEY:-minio-secret} + RUSTFS_ADDRESS: ":9000" + RUSTFS_CONSOLE_ADDRESS: ":9001" + RUSTFS_CONSOLE_ENABLE: "true" ports: - "9000:9000" - "9001:9001" volumes: - minio-data:/data healthcheck: - test: ["CMD", "mc", "ready", "local"] + test: ["CMD", "curl", "-fsS", "http://127.0.0.1:9000/health"] interval: 10s timeout: 5s retries: 5 + start_period: 15s agentfield: image: agentfield/control-plane:latest diff --git a/services/cli/internal/starter/assets/docker-compose.yml b/services/cli/internal/starter/assets/docker-compose.yml index 58971ca2..920d14da 100644 --- a/services/cli/internal/starter/assets/docker-compose.yml +++ b/services/cli/internal/starter/assets/docker-compose.yml @@ -31,22 +31,29 @@ services: timeout: 3s retries: 10 + # MinIO Community images left Docker Hub (and Quay anonymous pulls 401). + # rustfs/rustfs is a public S3-compatible drop-in on :9000. The service + # name stays `minio` so AF_STACK_S3_ENDPOINT=minio:9000 keeps working. minio: - image: minio/minio:latest - command: server /data --console-address ":9001" + image: rustfs/rustfs:1.0.1 + command: ["/data"] environment: - MINIO_ROOT_USER: ${AF_STACK_S3_ACCESS_KEY:-minio} - MINIO_ROOT_PASSWORD: ${AF_STACK_S3_SECRET_KEY:-minio-secret} + RUSTFS_ACCESS_KEY: ${AF_STACK_S3_ACCESS_KEY:-minio} + RUSTFS_SECRET_KEY: ${AF_STACK_S3_SECRET_KEY:-minio-secret} + RUSTFS_ADDRESS: ":9000" + RUSTFS_CONSOLE_ADDRESS: ":9001" + RUSTFS_CONSOLE_ENABLE: "true" ports: - "${MINIO_PORT:-9000}:9000" - "${MINIO_CONSOLE_PORT:-9001}:9001" volumes: - minio-data:/data healthcheck: - test: ["CMD", "mc", "ready", "local"] + test: ["CMD", "curl", "-fsS", "http://127.0.0.1:9000/health"] interval: 10s timeout: 5s retries: 5 + start_period: 15s # LiteLLM proxy: every upstream model provider behind the runtime's # OpenAI-compatible /api/v1/llm/* gateway. Only the provider keys you set