Files
scadalink-design/docker/docker-compose.yml
Joseph Doherty 9e97c1acd2 feat: replace site registration with database-driven site addressing
Central now resolves site Akka remoting addresses from the Sites DB table
(NodeAAddress/NodeBAddress) instead of relying on runtime RegisterSite
messages. Eliminates the race condition where sites starting before central
had their registration dead-lettered. Addresses are cached in
CentralCommunicationActor with 60s periodic refresh and on-demand refresh
when sites are added/edited/deleted via UI or CLI.
2026-03-17 23:13:10 -04:00

129 lines
3.5 KiB
YAML

services:
central-a:
image: scadalink:latest
container_name: scadalink-central-a
environment:
SCADALINK_CONFIG: Central
ASPNETCORE_ENVIRONMENT: Development
ASPNETCORE_URLS: "http://+:5000"
ports:
- "9001:5000" # Web UI + Inbound API
- "9011:8081" # Akka remoting (host access for CLI/debugging)
volumes:
- ./central-node-a/appsettings.Central.json:/app/appsettings.Central.json:ro
- ./central-node-a/logs:/app/logs
networks:
- scadalink-net
restart: unless-stopped
central-b:
image: scadalink:latest
container_name: scadalink-central-b
environment:
SCADALINK_CONFIG: Central
ASPNETCORE_ENVIRONMENT: Development
ASPNETCORE_URLS: "http://+:5000"
ports:
- "9002:5000" # Web UI + Inbound API
- "9012:8081" # Akka remoting
volumes:
- ./central-node-b/appsettings.Central.json:/app/appsettings.Central.json:ro
- ./central-node-b/logs:/app/logs
networks:
- scadalink-net
restart: unless-stopped
site-a-a:
image: scadalink:latest
container_name: scadalink-site-a-a
environment:
SCADALINK_CONFIG: Site
ports:
- "9021:8082" # Akka remoting (host access for debugging)
volumes:
- ./site-a-node-a/appsettings.Site.json:/app/appsettings.Site.json:ro
- ./site-a-node-a/data:/app/data
- ./site-a-node-a/logs:/app/logs
networks:
- scadalink-net
restart: unless-stopped
site-a-b:
image: scadalink:latest
container_name: scadalink-site-a-b
environment:
SCADALINK_CONFIG: Site
ports:
- "9022:8082" # Akka remoting
volumes:
- ./site-a-node-b/appsettings.Site.json:/app/appsettings.Site.json:ro
- ./site-a-node-b/data:/app/data
- ./site-a-node-b/logs:/app/logs
networks:
- scadalink-net
restart: unless-stopped
site-b-a:
image: scadalink:latest
container_name: scadalink-site-b-a
environment:
SCADALINK_CONFIG: Site
ports:
- "9031:8082" # Akka remoting
volumes:
- ./site-b-node-a/appsettings.Site.json:/app/appsettings.Site.json:ro
- ./site-b-node-a/data:/app/data
- ./site-b-node-a/logs:/app/logs
networks:
- scadalink-net
restart: unless-stopped
site-b-b:
image: scadalink:latest
container_name: scadalink-site-b-b
environment:
SCADALINK_CONFIG: Site
ports:
- "9032:8082" # Akka remoting
volumes:
- ./site-b-node-b/appsettings.Site.json:/app/appsettings.Site.json:ro
- ./site-b-node-b/data:/app/data
- ./site-b-node-b/logs:/app/logs
networks:
- scadalink-net
restart: unless-stopped
site-c-a:
image: scadalink:latest
container_name: scadalink-site-c-a
environment:
SCADALINK_CONFIG: Site
ports:
- "9041:8082" # Akka remoting
volumes:
- ./site-c-node-a/appsettings.Site.json:/app/appsettings.Site.json:ro
- ./site-c-node-a/data:/app/data
- ./site-c-node-a/logs:/app/logs
networks:
- scadalink-net
restart: unless-stopped
site-c-b:
image: scadalink:latest
container_name: scadalink-site-c-b
environment:
SCADALINK_CONFIG: Site
ports:
- "9042:8082" # Akka remoting
volumes:
- ./site-c-node-b/appsettings.Site.json:/app/appsettings.Site.json:ro
- ./site-c-node-b/data:/app/data
- ./site-c-node-b/logs:/app/logs
networks:
- scadalink-net
restart: unless-stopped
networks:
scadalink-net:
external: true