# AB CIP integration-test fixture — ab_server (libplctag). # # One service per family. All bind :44818 on the host; only one runs at a # time. Commands mirror the CLI args AbServerProfile.cs constructs for the # native-binary path. # # Usage: # docker compose --profile controllogix up # docker compose --profile compactlogix up # docker compose --profile micro800 up # docker compose --profile guardlogix up services: controllogix: profiles: ["controllogix"] build: context: . dockerfile: Dockerfile image: otopcua-ab-server:libplctag-release container_name: otopcua-ab-server-controllogix restart: "no" ports: - "44818:44818" command: [ "ab_server", "--plc=ControlLogix", "--path=1,0", "--port=44818", "--tag=TestDINT:DINT[1]", "--tag=TestREAL:REAL[1]", "--tag=TestBOOL:BOOL[1]", "--tag=TestSINT:SINT[1]", "--tag=TestString:STRING[1]", "--tag=TestArray:DINT[16]" ] compactlogix: profiles: ["compactlogix"] image: otopcua-ab-server:libplctag-release build: context: . dockerfile: Dockerfile container_name: otopcua-ab-server-compactlogix restart: "no" ports: - "44818:44818" # ab_server doesn't distinguish CompactLogix from ControlLogix — no # dedicated --plc mode. Driver-side ConnectionSize cap is enforced # separately (see AbServerProfile.CompactLogix Notes). command: [ "ab_server", "--plc=ControlLogix", "--path=1,0", "--port=44818", "--tag=TestDINT:DINT[1]", "--tag=TestREAL:REAL[1]", "--tag=TestBOOL:BOOL[1]" ] micro800: profiles: ["micro800"] image: otopcua-ab-server:libplctag-release build: context: . dockerfile: Dockerfile container_name: otopcua-ab-server-micro800 restart: "no" ports: - "44818:44818" # ab_server does have a Micro800 plc mode (unconnected-only, empty path). command: [ "ab_server", "--plc=Micro800", "--port=44818", "--tag=TestDINT:DINT[1]", "--tag=TestREAL:REAL[1]" ] guardlogix: profiles: ["guardlogix"] image: otopcua-ab-server:libplctag-release build: context: . dockerfile: Dockerfile container_name: otopcua-ab-server-guardlogix restart: "no" ports: - "44818:44818" # ab_server has no safety subsystem — _S suffix triggers driver-side # classification only. command: [ "ab_server", "--plc=ControlLogix", "--path=1,0", "--port=44818", "--tag=TestDINT:DINT[1]", "--tag=SafetyDINT_S:DINT[1]" ]