7dd64b8ccd
Fixture renamed off ignitionoee's otopcua-focas-sim, port 8193 published, project label, default endpoint 10.100.0.35:8193; infra/dev-environment docs. FOCAS.md: MACRO:3901 parts count, PMC override + cycle-time recipes, won't-do/blocked backlog. Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
45 lines
1.8 KiB
YAML
45 lines
1.8 KiB
YAML
# FOCAS simulator — focas-mock JSON/TCP + native FOCAS2 Ethernet server.
|
|
#
|
|
# The image is built from the vendored focas-mock snapshot at ./focas-mock/
|
|
# (see focas-mock/VENDORED.md for refresh procedure).
|
|
#
|
|
# Usage:
|
|
# docker compose -f Docker/docker-compose.yml up -d --wait
|
|
# docker compose -f Docker/docker-compose.yml down
|
|
#
|
|
# OWNERSHIP (#651): the container/image are named `otopcua-focas-fixture` on
|
|
# purpose. The name `otopcua-focas-sim` on 10.100.0.35 belongs to ignitionoee
|
|
# (its provision-oee-focas.sh `docker rm -f`s and recreates it for ignition-site);
|
|
# an earlier version of this file used that name and the two projects overwrote each
|
|
# other's fixture. Never start, stop or rebuild `otopcua-focas-sim` or any
|
|
# ignition-* / oee-* container from here.
|
|
# Deployed at /opt/otopcua-focas on the Docker host (rsync this Docker/ dir there).
|
|
#
|
|
# One service, one container — the mock's native FOCAS Ethernet responder
|
|
# auto-detects the binary PDU prefix (`a0 a0 a0 a0`) on the same TCP port
|
|
# that serves JSON admin commands. Tests that need per-series behaviour
|
|
# call `mock_load_profile` via the fixture's admin API at test start.
|
|
# The pre-wire-client era had one compose profile per CNC series; that
|
|
# ceremony is gone because the managed wire client doesn't depend on a
|
|
# per-series shim DLL.
|
|
|
|
services:
|
|
focas-sim:
|
|
image: otopcua-focas-fixture:latest
|
|
build:
|
|
context: ./focas-mock
|
|
dockerfile: Dockerfile
|
|
container_name: otopcua-focas-fixture
|
|
ports:
|
|
- "8193:8193"
|
|
restart: "no"
|
|
labels:
|
|
project: lmxopcua
|
|
command: ["--profile", "FWLIB64"]
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "python -c \"import socket; s=socket.create_connection(('127.0.0.1',8193),timeout=2); s.close()\" || exit 1"]
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 3
|
|
start_period: 5s
|