# Isolated development environment — supports unlimited parallel instances. # # Usage (via helper script — recommended): # ./scripts/isolated-env.sh up my-feature # source <(./scripts/isolated-env.sh env my-feature) # ./scripts/isolated-env.sh down my-feature # # Usage (manual): # COMPOSE_PROJECT_NAME=agents-my-feature docker compose -f docker-compose.isolated.yml up -d # docker compose -p agents-my-feature -f docker-compose.isolated.yml port doltgres-db 5432 # # Docker assigns random available host ports — zero collisions, unlimited parallelism. # Use `docker compose port ` or the helper script to discover assigned ports. services: doltgres-db: image: dolthub/doltgresql:latest pull_policy: always restart: unless-stopped environment: DOLTGRES_USER: appuser DOLTGRES_PASSWORD: password DOLTGRES_DB: inkeep_agents ports: - "5432" volumes: - doltgres-data:/var/lib/doltgres healthcheck: test: ["CMD-SHELL", "PGPASSWORD=password psql -h localhost -U appuser -d inkeep_agents -c 'SELECT 1' || exit 1"] interval: 10s timeout: 5s retries: 5 start_period: 20s postgres-db: image: postgres:18 restart: unless-stopped environment: POSTGRES_DB: inkeep_agents POSTGRES_USER: appuser POSTGRES_PASSWORD: password ports: - "5432" volumes: - postgres-data:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U appuser -d inkeep_agents"] interval: 2s timeout: 3s retries: 30 spicedb: image: authzed/spicedb:latest command: serve restart: unless-stopped ports: - "50051" - "8443" environment: SPICEDB_GRPC_PRESHARED_KEY: "dev-secret-key" SPICEDB_DATASTORE_ENGINE: postgres SPICEDB_DATASTORE_CONN_URI: "postgres://spicedb:spicedb@spicedb-postgres:5432/spicedb?sslmode=disable" SPICEDB_HTTP_ENABLED: "true" healthcheck: test: ["CMD", "grpc_health_probe", "-addr", "localhost:50051"] interval: 5s timeout: 3s retries: 10 start_period: 5s depends_on: spicedb-migrate: condition: service_completed_successfully spicedb-migrate: image: authzed/spicedb:latest command: migrate head restart: "no" environment: SPICEDB_DATASTORE_ENGINE: postgres SPICEDB_DATASTORE_CONN_URI: "postgres://spicedb:spicedb@spicedb-postgres:5432/spicedb?sslmode=disable" depends_on: spicedb-postgres: condition: service_healthy spicedb-postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: spicedb POSTGRES_PASSWORD: spicedb POSTGRES_DB: spicedb ports: - "5432" volumes: - spicedb-postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U spicedb"] interval: 2s timeout: 3s retries: 30 mailpit: image: axllent/mailpit:v1.29.2 restart: unless-stopped ports: - "8025" - "1025" volumes: doltgres-data: postgres-data: spicedb-postgres-data: