ai-code-battle/docker-compose.bots.yml
jedarden b58e90a94f feat(deploy): register 10 Phase 13 expansion bots in docker-compose.bots.yml
Adds service definitions for Defender, Scout, Farmer, Pacifist, Phalanx,
Raider, Nomad, Opportunist, Assassin, and Kamikaze bots on ports 8087-8096.
Expands the bot field from 6 to 16 entries for rating diversity.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-22 17:55:56 -04:00

282 lines
7.2 KiB
YAML

# AI Code Battle - Bot Host Deployment
# Runs all 16 strategy bots as a single deployable unit
#
# Usage:
# docker-compose -f docker-compose.bots.yml up -d
#
# Environment variables (set in .env or pass directly):
# BOT_SECRET_RANDOM - Secret for RandomBot
# BOT_SECRET_GATHERER - Secret for GathererBot
# BOT_SECRET_RUSHER - Secret for RusherBot
# BOT_SECRET_GUARDIAN - Secret for GuardianBot
# BOT_SECRET_SWARM - Secret for SwarmBot
# BOT_SECRET_HUNTER - Secret for HunterBot
# BOT_SECRET_DEFENDER - Secret for DefenderBot
# BOT_SECRET_SCOUT - Secret for ScoutBot
# BOT_SECRET_FARMER - Secret for FarmerBot
# BOT_SECRET_PACIFIST - Secret for PacifistBot
# BOT_SECRET_PHALANX - Secret for PhalanxBot
# BOT_SECRET_RAIDER - Secret for RaiderBot
# BOT_SECRET_NOMAD - Secret for NomadBot
# BOT_SECRET_OPPORTUNIST - Secret for OpportunistBot
# BOT_SECRET_ASSASSIN - Secret for AssassinBot
# BOT_SECRET_KAMIKAZE - Secret for KamikazeBot
services:
random:
build:
context: ./bots/random
dockerfile: Dockerfile
ports:
- "8081:8080"
environment:
- BOT_PORT=8080
- BOT_SECRET=${BOT_SECRET_RANDOM:-dev-secret-random}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
gatherer:
build:
context: ./bots/gatherer
dockerfile: Dockerfile
ports:
- "8082:8080"
environment:
- BOT_PORT=8080
- BOT_SECRET=${BOT_SECRET_GATHERER:-dev-secret-gatherer}
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8080/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
rusher:
build:
context: ./bots/rusher
dockerfile: Dockerfile
ports:
- "8083:8082"
environment:
- BOT_PORT=8082
- BOT_SECRET=${BOT_SECRET_RUSHER:-dev-secret-rusher}
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8082/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
guardian:
build:
context: ./bots/guardian
dockerfile: Dockerfile
ports:
- "8084:8083"
environment:
- BOT_PORT=8083
- BOT_SECRET=${BOT_SECRET_GUARDIAN:-dev-secret-guardian}
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8083/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
swarm:
build:
context: ./bots/swarm
dockerfile: Dockerfile
ports:
- "8085:8084"
environment:
- BOT_PORT=8084
- BOT_SECRET=${BOT_SECRET_SWARM:-dev-secret-swarm}
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8084/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
hunter:
build:
context: ./bots/hunter
dockerfile: Dockerfile
ports:
- "8086:8085"
environment:
- BOT_PORT=8085
- BOT_SECRET=${BOT_SECRET_HUNTER:-dev-secret-hunter}
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8085/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
# ── Phase 13 expansion bots ──────────────────────────────────────────────
defender:
build:
context: ./bots/defender
dockerfile: Dockerfile
ports:
- "8087:8080"
environment:
- BOT_PORT=8080
- BOT_SECRET=${BOT_SECRET_DEFENDER:-dev-secret-defender}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
scout:
build:
context: ./bots/scout
dockerfile: Dockerfile
ports:
- "8088:8080"
environment:
- BOT_PORT=8080
- BOT_SECRET=${BOT_SECRET_SCOUT:-dev-secret-scout}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
farmer:
build:
context: ./bots/farmer
dockerfile: Dockerfile
ports:
- "8089:8080"
environment:
- BOT_PORT=8080
- BOT_SECRET=${BOT_SECRET_FARMER:-dev-secret-farmer}
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8080/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
pacifist:
build:
context: ./bots/pacifist
dockerfile: Dockerfile
ports:
- "8090:8080"
environment:
- BOT_PORT=8080
- BOT_SECRET=${BOT_SECRET_PACIFIST:-dev-secret-pacifist}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
phalanx:
build:
context: ./bots/phalanx
dockerfile: Dockerfile
ports:
- "8091:8090"
environment:
- BOT_PORT=8090
- BOT_SECRET=${BOT_SECRET_PHALANX:-dev-secret-phalanx}
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8090/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
raider:
build:
context: ./bots/raider
dockerfile: Dockerfile
ports:
- "8092:8086"
environment:
- BOT_PORT=8086
- BOT_SECRET=${BOT_SECRET_RAIDER:-dev-secret-raider}
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8086/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
nomad:
build:
context: ./bots/nomad
dockerfile: Dockerfile
ports:
- "8093:8080"
environment:
- BOT_PORT=8080
- BOT_SECRET=${BOT_SECRET_NOMAD:-dev-secret-nomad}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
opportunist:
build:
context: ./bots/opportunist
dockerfile: Dockerfile
ports:
- "8094:8080"
environment:
- BOT_PORT=8080
- BOT_SECRET=${BOT_SECRET_OPPORTUNIST:-dev-secret-opportunist}
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8080/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
assassin:
build:
context: ./bots/assassin
dockerfile: Dockerfile
ports:
- "8095:8082"
environment:
- BOT_PORT=8082
- BOT_SECRET=${BOT_SECRET_ASSASSIN:-dev-secret-assassin}
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8082/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped
kamikaze:
build:
context: ./bots/kamikaze
dockerfile: Dockerfile
ports:
- "8096:8080"
environment:
- BOT_PORT=8080
- BOT_SECRET=${BOT_SECRET_KAMIKAZE:-dev-secret-kamikaze}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 5s
retries: 3
restart: unless-stopped