Files
lmxopcua/tests/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbCip.IntegrationTests/Docker/Dockerfile
Joseph Doherty a25593a9c6 chore: organize solution into module folders (Core/Server/Drivers/Client/Tooling)
Group all 69 projects into category subfolders under src/ and tests/ so the
Rider Solution Explorer mirrors the module structure. Folders: Core, Server,
Drivers (with a nested Driver CLIs subfolder), Client, Tooling.

- Move every project folder on disk with git mv (history preserved as renames).
- Recompute relative paths in 57 .csproj files: cross-category ProjectReferences,
  the lib/ HintPath+None refs in Driver.Historian.Wonderware, and the external
  mxaccessgw refs in Driver.Galaxy and its test project.
- Rebuild ZB.MOM.WW.OtOpcUa.slnx with nested solution folders.
- Re-prefix project paths in functional scripts (e2e, compliance, smoke SQL,
  integration, install).

Build green (0 errors); unit tests pass. Docs left for a separate pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 01:55:28 -04:00

44 lines
1.7 KiB
Docker

# ab_server container for the AB CIP integration suite.
#
# ab_server is a C program in libplctag/libplctag under src/tools/ab_server.
# We clone at a pinned commit, build just the ab_server target via CMake,
# and copy the resulting binary into a slim runtime stage so the published
# image stays small (~60MB vs ~350MB for the build stage).
# -------- stage 1: build ab_server from source --------
FROM debian:bookworm-slim AS build
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
build-essential \
cmake \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Pinned tag matches the `ab_server` version AbServerFixture + CI treat as
# canonical. Bump deliberately alongside a driver-side change that needs
# something newer.
ARG LIBPLCTAG_TAG=release
RUN git clone --depth 1 --branch "${LIBPLCTAG_TAG}" https://github.com/libplctag/libplctag.git /src
WORKDIR /src
RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
&& cmake --build build --target ab_server --parallel
# -------- stage 2: runtime --------
FROM debian:bookworm-slim
LABEL org.opencontainers.image.source="https://github.com/dohertj2/lmxopcua" \
org.opencontainers.image.description="libplctag ab_server for OtOpcUa AB CIP driver integration tests"
# libplctag's ab_server is statically linked against libc / libstdc++ on
# Debian bookworm; no runtime dependencies beyond what the slim image
# already has.
COPY --from=build /src/build/bin_dist/ab_server /usr/local/bin/ab_server
EXPOSE 44818
# docker-compose.yml overrides the command with per-family flags.
CMD ["ab_server", "--plc=ControlLogix", "--path=1,0", "--port=44818", \
"--tag=TestDINT:DINT[1]", "--tag=TestREAL:REAL[1]", "--tag=TestBOOL:BOOL[1]"]