swactor/tests/docker/docker-compose.yml
Developer 59845f4059 feat: Docker realization, node binary, docs reorg, and simulation testing
Docker realization (bridging simulation to real TCP):
- NodeDriver (`crates/distribution/src/driver.rs`): bridges DistributedNode
  tick loop to TcpTransport with piggyback-extended wire messages
- swactor-node binary (`crates/node/`): CLI node with --listen, --seed,
  --dashboard-port, --actors flags
- Dockerfile: multi-stage build (rust:1.93-slim → debian:bookworm-slim)
- Docker integration tests (`tests/docker/`): 5-node cluster with 4
  scenarios (convergence, failure detection, actor resolution, rejoin)
- LAN cluster scripts for cross-machine validation
- TCP transport retry-on-stale-connection logic
- /api/distribution REST endpoint on dashboard (feature-gated)
- Piggyback fields (piggyback + from_addr) on Ping/Ack/PingReq messages

Docs reorganization:
- docs/runtime/ — actor-model, runtime, worker-thread, channels
- docs/distribution/ — distribution, swim, kademlia, transport
- docs/diagrams/ — all SVG files
- docs/connectome/ — connectome analysis
- docs/development_history/ — DOCKER_REALIZATION.md, SIMULATION_TESTING.md
- render_docs.sh outputs to docs/diagrams/
- README links updated to new paths

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 07:45:44 +00:00

70 lines
1.6 KiB
YAML

services:
seed:
build:
context: ../..
dockerfile: Dockerfile
command: ["--listen", "10.0.1.10:7000", "--dashboard-port", "9090", "--actors", "2"]
networks:
cluster:
ipv4_address: 10.0.1.10
ports:
- "9091:9090"
node-2:
build:
context: ../..
dockerfile: Dockerfile
command: ["--listen", "10.0.1.11:7000", "--seed", "10.0.1.10:7000", "--dashboard-port", "9090", "--actors", "2"]
networks:
cluster:
ipv4_address: 10.0.1.11
ports:
- "9092:9090"
depends_on:
- seed
node-3:
build:
context: ../..
dockerfile: Dockerfile
command: ["--listen", "10.0.1.12:7000", "--seed", "10.0.1.10:7000", "--dashboard-port", "9090", "--actors", "2"]
networks:
cluster:
ipv4_address: 10.0.1.12
ports:
- "9093:9090"
depends_on:
- seed
node-4:
build:
context: ../..
dockerfile: Dockerfile
command: ["--listen", "10.0.1.13:7000", "--seed", "10.0.1.10:7000", "--dashboard-port", "9090", "--actors", "2"]
networks:
cluster:
ipv4_address: 10.0.1.13
ports:
- "9094:9090"
depends_on:
- seed
node-5:
build:
context: ../..
dockerfile: Dockerfile
command: ["--listen", "10.0.1.14:7000", "--seed", "10.0.1.10:7000", "--dashboard-port", "9090", "--actors", "2"]
networks:
cluster:
ipv4_address: 10.0.1.14
ports:
- "9095:9090"
depends_on:
- seed
networks:
cluster:
driver: bridge
ipam:
config:
- subnet: 10.0.1.0/24