feat: add Docker infrastructure for 8-node cluster topology (2 central + 3 sites)
Multi-stage Dockerfile with NuGet restore layer caching, per-node appsettings with Docker hostnames, shared bridge network with infra services, and build/deploy/teardown scripts. Ports use 90xx block to avoid conflicts.
This commit is contained in:
126
docker/docker-compose.yml
Normal file
126
docker/docker-compose.yml
Normal file
@@ -0,0 +1,126 @@
|
||||
services:
|
||||
central-a:
|
||||
image: scadalink:latest
|
||||
container_name: scadalink-central-a
|
||||
environment:
|
||||
SCADALINK_CONFIG: Central
|
||||
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_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
|
||||
Reference in New Issue
Block a user