# AB Legacy PCCC integration-test fixture — ab_server in PCCC mode.
#
# Same image as the AB CIP fixture (otopcua-ab-server:libplctag-release).
# The build context points at the AB CIP Docker folder one directory over
# so `docker compose build` from here produces the same image if it
# doesn't already exist; if it does, docker's cache reuses the layer.
#
# One service per PCCC family. All bind :44818 on the host; run one at a
# time. PCCC tag format differs from CIP: `<file>[<size>]` without a
# type suffix since the type is implicit in the file letter (N = INT,
# F = REAL, B = bit-packed, L = DINT).
#
# Usage:
#   docker compose --profile slc500 up
#   docker compose --profile micrologix up
#   docker compose --profile plc5 up
services:
  slc500:
    profiles: ["slc500"]
    build:
      context: ../../ZB.MOM.WW.OtOpcUa.Driver.AbCip.IntegrationTests/Docker
      dockerfile: Dockerfile
    image: otopcua-ab-server:libplctag-release
    container_name: otopcua-ab-server-slc500
    restart: "no"
    ports:
      - "44818:44818"
    command: [
      "ab_server",
      "--plc=SLC500",
      "--port=44818",
      "--tag=N7[10]",
      "--tag=F8[10]",
      "--tag=B3[10]",
      "--tag=L19[10]"
    ]

  micrologix:
    profiles: ["micrologix"]
    image: otopcua-ab-server:libplctag-release
    build:
      context: ../../ZB.MOM.WW.OtOpcUa.Driver.AbCip.IntegrationTests/Docker
      dockerfile: Dockerfile
    container_name: otopcua-ab-server-micrologix
    restart: "no"
    ports:
      - "44818:44818"
    command: [
      "ab_server",
      "--plc=Micrologix",
      "--port=44818",
      "--tag=B3[10]",
      "--tag=N7[10]",
      "--tag=L19[10]"
    ]

  plc5:
    profiles: ["plc5"]
    image: otopcua-ab-server:libplctag-release
    build:
      context: ../../ZB.MOM.WW.OtOpcUa.Driver.AbCip.IntegrationTests/Docker
      dockerfile: Dockerfile
    container_name: otopcua-ab-server-plc5
    restart: "no"
    ports:
      - "44818:44818"
    command: [
      "ab_server",
      "--plc=PLC/5",
      "--port=44818",
      "--tag=N7[10]",
      "--tag=F8[10]",
      "--tag=B3[10]"
    ]
