services: minio: image: minio/minio:latest container_name: medias-minio command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD} ports: - "9000:9000" - "9001:9001" volumes: - minio_data:/data healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 10s timeout: 5s retries: 12 networks: - medias_net minio-init: image: minio/mc:latest container_name: medias-minio-init depends_on: minio: condition: service_healthy entrypoint: > /bin/sh -c " mc alias set local http://minio:9000 ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD} && mc mb -p local/${S3_BUCKET} || true && mc anonymous set none local/${S3_BUCKET} || true " restart: "no" networks: - medias_net media-access-api: image: ${MEDIA_ACCESS_API_IMAGE} container_name: medias-access-api environment: OIDC_ISSUER: ${OIDC_ISSUER} OIDC_AUDIENCE: ${OIDC_AUDIENCE} OIDC_JWKS_URL: ${OIDC_JWKS_URL} OIDC_CLIENT_ID: ${OIDC_CLIENT_ID} OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET} RBAC_ROLE_PREFIX: ${RBAC_ROLE_PREFIX} RBAC_ROLE_ALL: ${RBAC_ROLE_ALL} S3_ENDPOINT: http://minio:9000 S3_BUCKET: ${S3_BUCKET} S3_REGION: ${S3_REGION} S3_ACCESS_KEY: ${MINIO_ROOT_USER} S3_SECRET_KEY: ${MINIO_ROOT_PASSWORD} S3_FORCE_PATH_STYLE: "true" PRESIGN_TTL_SECONDS: ${PRESIGN_TTL_SECONDS} PORT: "8081" depends_on: minio: condition: service_healthy minio-init: condition: service_completed_successfully ports: - "8081:8081" networks: - medias_net viewer-bff: build: context: ./viewer-bff dockerfile: Dockerfile container_name: medias-viewer-bff depends_on: - media-access-api environment: PORT: "8082" MEDIA_API_BASE_URL: ${MEDIA_API_BASE_URL} CORS_ALLOWED_ORIGIN: ${CORS_ALLOWED_ORIGIN} ports: - "${VIEWER_BFF_PORT:-8082}:8082" networks: - medias_net networks: medias_net: name: medias_net volumes: minio_data: