Files
SnapOtter/tests/qa/docker-compose.qa.yml
T

80 lines
2.1 KiB
YAML
Raw Normal View History

# Isolated QA stack for the exhaustive tool QA sweep.
# Uses the pre-built snapotter/snapotter:latest image (built from docker/docker-compose.yml).
# Auth disabled (synthetic admin), high limits, fresh volumes, host port 13499 to avoid
# clashing with a native dev server on 1349.
# docker compose -f tests/qa/docker-compose.qa.yml up -d
# open http://localhost:13499
name: snapotter-qa
services:
app:
image: snapotter/snapotter:latest
container_name: snapotter-qa
ports:
- "13499:1349"
volumes:
- qa-data:/data
- qa-workspace:/tmp/workspace
environment:
- AUTH_ENABLED=false
- RATE_LIMIT_PER_MIN=100000
- PROCESSING_TIMEOUT_S=600
- MAX_UPLOAD_SIZE_MB=0
- MAX_BATCH_SIZE=0
- MAX_MEGAPIXELS=0
- CONCURRENT_JOBS=0
- MAX_WORKER_THREADS=0
- MAX_PIPELINE_STEPS=50
- ANALYTICS_ENABLED=false
- TRUST_PROXY=true
- DATABASE_URL=postgres://snapotter:snapotter@postgres:5432/snapotter
- REDIS_URL=redis://redis:6379
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
shm_size: "2gb"
healthcheck:
test: ["CMD", "curl", "-sf", "--max-time", "5", "http://localhost:1349/api/v1/health"]
interval: 15s
timeout: 5s
start_period: 90s
retries: 5
restart: unless-stopped
postgres:
image: postgres:17-alpine
container_name: snapotter-qa-postgres
environment:
POSTGRES_USER: snapotter
POSTGRES_PASSWORD: snapotter
POSTGRES_DB: snapotter
volumes:
- qa-pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U snapotter"]
interval: 10s
timeout: 5s
retries: 12
start_period: 15s
redis:
image: redis:8-alpine
container_name: snapotter-qa-redis
command: ["redis-server", "--maxmemory-policy", "noeviction", "--appendonly", "yes"]
volumes:
- qa-redisdata:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 12
start_period: 10s
volumes:
qa-data:
qa-workspace:
qa-pgdata:
qa-redisdata: