docker-compose.s3-e2e.yml
Rama main · réplica de lectura del repositorio original.
# S3 source-retention overlay for the e2e topology.
#
# Adds a MinIO bucket and enables novel-service source retention so the
# source-boundary kill/restart drill (tests/e2e/source_recovery_drill.sh) runs
# against the real retained-object replay path: acceptance commits the object
# plus a 'source'-stage job, and the claimed worker rebuilds chapters from S3
# before any provider call.
services:
minio:
image: novel-world-minio-e2e:local
build:
context: .
dockerfile: infra/docker/Dockerfile.minio-e2e
platform: linux/amd64
pull_policy: build
container_name: ${CONTAINER_PREFIX:-novel}-minio
command: server /data --console-address :9001
environment:
MINIO_ROOT_USER: drill-access-key
MINIO_ROOT_PASSWORD: drill-secret-key
volumes:
- minio-data:/data
networks:
- novel-net
minio-init:
image: novel-world-minio-e2e:local
platform: linux/amd64
pull_policy: never
container_name: ${CONTAINER_PREFIX:-novel}-minio-init
depends_on:
minio:
condition: service_started
networks:
- novel-net
entrypoint: ["/bin/sh", "-c"]
command:
- |
for attempt in $(seq 1 30); do
if mc alias set drill http://minio:9000 drill-access-key drill-secret-key >/dev/null 2>&1 \
&& mc mb --ignore-existing drill/novel-world-uploads >/dev/null 2>&1; then
exit 0
fi
sleep 1
done
exit 1
novel-service:
environment:
S3_ENABLED: "true"
S3_ENDPOINT: http://minio:9000
S3_BUCKET: novel-world-uploads
S3_REGION: us-east-1
S3_FORCE_PATH_STYLE: "true"
S3_ACCESS_KEY: drill-access-key
S3_SECRET_KEY: drill-secret-key
depends_on:
minio-init:
condition: service_completed_successfully
volumes:
minio-data: