services: postgres: image: postgres:18-alpine@sha256:d3e1620b530c944afa6e887d22eb899824da68e19c52024bf98f5220c88a65b2 ports: - "5432:5432" environment: POSTGRES_USER: seahaven POSTGRES_PASSWORD: seahaven POSTGRES_DB: seahaven_ap volumes: - seahaven_ap_pg:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U seahaven -d seahaven_ap"] interval: 5s timeout: 5s retries: 10 minio: image: minio/minio:RELEASE.2025-04-22T22-12-26Z@sha256:a1ea29fa28355559ef137d71fc570e508a214ec84ff8083e39bc5428980b015e command: server /data --console-address ":9001" ports: - "9000:9000" - "9001:9001" environment: MINIO_ROOT_USER: seahaven MINIO_ROOT_PASSWORD: seahavensecret volumes: - seahaven_ap_minio:/data healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 5s timeout: 5s retries: 10 minio-init: image: minio/mc:RELEASE.2025-04-16T18-13-26Z@sha256:aead63c77f9db9107f1696fb08ecb0faeda23729cde94b0f663edf4fe09728e3 depends_on: minio: condition: service_started entrypoint: > /bin/sh -c " until mc alias set local http://minio:9000 seahaven seahavensecret; do sleep 1; done; mc mb --ignore-existing local/seahaven-ap-documents; exit 0; " volumes: seahaven_ap_pg: seahaven_ap_minio: