46 lines
1.8 KiB
YAML
46 lines
1.8 KiB
YAML
# Isolated MTConnect live-gate overlay (Task 21).
|
|
#
|
|
# Runs the MAIN central pair ONLY, from this worktree's image, under its own
|
|
# compose project + offset host ports, so the shared `otopcua-dev` rig and the
|
|
# three sibling driver worktrees that share `otopcua-host:dev` are untouched.
|
|
# Mirrors how the mqtt-sparkplug worktree isolated itself (`otopcua-host:mqtt`,
|
|
# project `otopcua-mqtt`, ports 9210/4850).
|
|
#
|
|
# docker build -f docker-dev/Dockerfile --target runtime -t otopcua-host:mtconnect .
|
|
# docker compose -p otopcua-mtc -f docker-dev/docker-compose.yml \
|
|
# -f docker-dev/docker-compose.mtconnect.yml \
|
|
# up -d sql migrator cluster-seed central-1 central-2
|
|
#
|
|
# AdminUI -> http://localhost:9220 (login disabled; auto-admin)
|
|
# OPC UA -> opc.tcp://localhost:4860 (central-1) / :4861 (central-2)
|
|
# SQL -> localhost,14340
|
|
#
|
|
# Both MAIN nodes run because `cluster-seed` declares MAIN as a 2-node cluster:
|
|
# ConfigPublishCoordinator sources its expected-ack set from enabled ClusterNode
|
|
# rows, so deploying with one node down fails at the apply deadline.
|
|
#
|
|
# Traefik is deliberately not started — central-1 publishes its AdminUI port
|
|
# directly, which removes the :9200 round-robin that otherwise makes it
|
|
# ambiguous which node served a request.
|
|
|
|
# NOTE: `!override` is required on every `ports` list. Compose MERGES list-valued
|
|
# keys by appending, so a plain re-declaration would keep the base file's
|
|
# "14330:1433" / "4840:4840" alongside the offsets and collide with the running
|
|
# `otopcua-dev` rig ("Bind for 0.0.0.0:14330 failed: port is already allocated").
|
|
services:
|
|
|
|
sql:
|
|
ports: !override
|
|
- "14340:1433"
|
|
|
|
central-1:
|
|
image: otopcua-host:mtconnect
|
|
ports: !override
|
|
- "4860:4840"
|
|
- "9220:9000"
|
|
|
|
central-2:
|
|
image: otopcua-host:mtconnect
|
|
ports: !override
|
|
- "4861:4840"
|