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>
70 lines
1.6 KiB
YAML
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
|