FROM debian:13-slim ARG REPO_USER ARG REPO_PASS ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates curl gnupg cmake ninja-build g++ pkg-config git \ nlohmann-json3-dev libspdlog-dev libfmt-dev libssl-dev libsystemd-dev \ protobuf-compiler libprotobuf-dev libgrpc++-dev protobuf-compiler-grpc \ && rm -rf /var/lib/apt/lists/* # Note: the gRPC/protobuf dev packages above are required so that the cmake # config shipped by libsmartbotic-db-client-dev can resolve `find_dependency(gRPC # CONFIG)`. Without protobuf-compiler-grpc, trixie's gRPCTargets.cmake references # plugin files that aren't present and find_package fails fatally (before the # pkg-config fallback). Mirrors smartbotic-database's build base. # Node 22 for the web UI build (vite 7 needs node >=20.19/22). RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ && apt-get install -y --no-install-recommends nodejs \ && rm -rf /var/lib/apt/lists/* # Smartbotics apt repo — provides libsmartbotic-db-client-dev (2.3.x). RUN curl -fsSL https://repository.smartbotics.ai/smartbotics-repo.gpg \ | gpg --dearmor -o /usr/share/keyrings/smartbotics-repo.gpg \ && printf 'machine repository.smartbotics.ai\nlogin %s\npassword %s\n' "$REPO_USER" "$REPO_PASS" \ > /etc/apt/auth.conf.d/smartbotics.conf \ && chmod 600 /etc/apt/auth.conf.d/smartbotics.conf \ && echo "deb [signed-by=/usr/share/keyrings/smartbotics-repo.gpg] https://repository.smartbotics.ai trixie main" \ > /etc/apt/sources.list.d/smartbotics.list \ && apt-get update \ && apt-get install -y --no-install-recommends libsmartbotic-db-client-dev \ && rm -rf /var/lib/apt/lists/*