name: reception services: postgres: image: pgvector/pgvector:pg16 container_name: reception_postgres environment: POSTGRES_DB: ${POSTGRES_DB:-reception} POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} ports: - '5434:5432' volumes: - postgres_data:/var/lib/postgresql/data - ./init.sql:/docker-entrypoint-initdb.d/init.sql healthcheck: test: ['CMD-SHELL', 'pg_isready -U postgres -d ${POSTGRES_DB:-reception}'] interval: 5s timeout: 5s retries: 10 redis: image: redis:7-alpine container_name: reception_redis ports: - '6380:6379' volumes: - redis_data:/data healthcheck: test: ['CMD', 'redis-cli', 'ping'] interval: 5s timeout: 5s retries: 10 minio: image: minio/minio:latest container_name: reception_minio command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin} ports: - '9000:9000' - '9001:9001' volumes: - minio_data:/data healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:9000/minio/health/live'] interval: 5s timeout: 5s retries: 10 minio-init: image: minio/mc:latest container_name: reception_minio_init depends_on: minio: condition: service_healthy entrypoint: > /bin/sh -c " mc alias set local http://minio:9000 ${MINIO_ROOT_USER:-minioadmin} ${MINIO_ROOT_PASSWORD:-minioadmin} && mc mb --ignore-existing local/${MINIO_BUCKET:-reception-evidence} && mc ilm rule add local/${MINIO_BUCKET:-reception-evidence} --expire-days 30 2>/dev/null || true && echo 'minio bucket ready: ${MINIO_BUCKET:-reception-evidence}' " restart: 'no' volumes: postgres_data: redis_data: minio_data: