# Development overrides — bind-mount source dirs so changes are reflected # immediately without rebuilding the image. # # Active automatically when you run `docker compose` from this directory. # Production deployments use docker-compose.yml alone (no override). networks: musehub-internal: volumes: minio_data: services: minio: image: minio/minio:latest container_name: musehub_minio command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin MINIO_SERVER_URL: "http://localhost:9000" volumes: - minio_data:/data ports: - "127.0.0.1:9000:9000" - "127.0.0.1:9001:9001" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 5s timeout: 5s retries: 10 networks: - musehub-internal createbuckets: image: minio/mc:latest container_name: musehub_minio_init depends_on: minio: condition: service_healthy entrypoint: > /bin/sh -c " mc alias set local http://minio:9000 minioadmin minioadmin && mc mb --ignore-existing local/muse-objects && echo 'bucket ready' " networks: - musehub-internal restart: "no" musehub: environment: DEBUG: "true" UVICORN_WORKERS: "1" TEST_DATABASE_URL: "postgresql+asyncpg://musehub:musehub@postgres:5432/musehub_test" BLOB_STORAGE_BUCKET: "muse-objects" BLOB_STORAGE_ENDPOINT: "http://minio:9000" BLOB_STORAGE_PUBLIC_ENDPOINT: "http://localhost:9000" BLOB_STORAGE_ACCESS_KEY_ID: "minioadmin" BLOB_STORAGE_SECRET_ACCESS_KEY: "minioadmin" BLOB_STORAGE_REGION: "us-east-1" depends_on: createbuckets: condition: service_completed_successfully volumes: - ./musehub:/app/musehub - ./tests:/app/tests - ./tools:/app/tools - ./scripts:/app/scripts - ./alembic:/app/alembic # Muse VCS engine — bind-mounted so entrypoint.sh can pip install it. - ../muse:/muse:ro # Contracts package — bind-mounted read-only so entrypoint.sh can pip install it. - ../contracts:/src/contracts:ro - ./deploy:/app/deploy:ro # Root-level config files — needed by infra/security tests that parse them. - ./Dockerfile:/app/Dockerfile:ro - ./docker-compose.yml:/app/docker-compose.yml:ro - ./docker-compose.override.yml:/app/docker-compose.override.yml:ro - ./.env.example:/app/.env.example:ro - ./.museignore:/app/.museignore:ro worker: environment: DEBUG: "false" WORKER_POLL_INTERVAL: "1.0" BLOB_STORAGE_BUCKET: "muse-objects" BLOB_STORAGE_ENDPOINT: "http://minio:9000" BLOB_STORAGE_ACCESS_KEY_ID: "minioadmin" BLOB_STORAGE_SECRET_ACCESS_KEY: "minioadmin" BLOB_STORAGE_REGION: "us-east-1" volumes: - ./musehub:/app/musehub - ../muse:/muse:ro - ../contracts:/src/contracts:ro