services: cache: build: . environment: MBX_CACHE_STORAGE: s3 MBX_CACHE_DATABASE_URL: postgres://mbx_cache:mbx_cache@postgres/mbx_cache MBX_CACHE_S3_BUCKET: mbx-cache MBX_CACHE_S3_ENDPOINT: http://minio:9000 MBX_CACHE_S3_PATH_STYLE: "true" AWS_ACCESS_KEY_ID: mbx-cache AWS_SECRET_ACCESS_KEY: mbx-cache-development MBX_CACHE_TOKENS_JSON: '[{"token":"development-token","read":["default"],"write":["default"]}]' ports: ["8080:8080"] depends_on: postgres: {condition: service_healthy} create-bucket: {condition: service_completed_successfully} postgres: image: postgres:18-alpine@sha256:77f585114c32fbca283dc835b0596f4e52b51b4c6662d7810b2f4084f60a1873 environment: POSTGRES_USER: mbx_cache POSTGRES_PASSWORD: mbx_cache POSTGRES_DB: mbx_cache volumes: ["postgres:/var/lib/postgresql/data"] healthcheck: test: ["CMD-SHELL", "pg_isready -U mbx_cache"] interval: 2s timeout: 2s retries: 20 minio: image: quay.io/minio/minio:latest command: server /data environment: MINIO_ROOT_USER: mbx-cache MINIO_ROOT_PASSWORD: mbx-cache-development volumes: ["objects:/data"] healthcheck: test: ["CMD", "mc", "ready", "local"] interval: 2s timeout: 2s retries: 20 create-bucket: image: quay.io/minio/mc:latest depends_on: minio: {condition: service_healthy} entrypoint: ["/bin/sh", "-c"] command: ["mc alias set local http://minio:9000 mbx-cache mbx-cache-development && mc mb --ignore-existing local/mbx-cache"] volumes: postgres: {} objects: {}