| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- # smartbotic-automation Build Base Image
- # Pre-installed Debian 13 build dependencies for fast iterative builds.
- #
- # Build:
- # docker buildx build -f packaging/Dockerfile.base \
- # --build-arg REPO_PASS=<password> \
- # -t smartbotic-automation-build-base:debian13 .
- FROM debian:trixie
- ENV DEBIAN_FRONTEND=noninteractive
- RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates \
- && rm -rf /var/lib/apt/lists/*
- # SmartBotics APT repository (for libsmartbotic-db-client-dev)
- ARG REPO_USER=callerai
- ARG REPO_PASS
- COPY packaging/smartbotics-repo.gpg /usr/share/keyrings/smartbotics-repo.gpg
- RUN echo "deb [signed-by=/usr/share/keyrings/smartbotics-repo.gpg] https://repository.smartbotics.ai trixie main" \
- > /etc/apt/sources.list.d/smartbotics.list \
- && 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 \
- && apt-get update \
- && apt-get install -y --no-install-recommends libsmartbotic-db-client-dev \
- && rm -rf /var/lib/apt/lists/* \
- && rm -f /etc/apt/auth.conf.d/smartbotics.conf \
- && rm -f /etc/apt/sources.list.d/smartbotics.list
- RUN apt-get update && apt-get install -y --no-install-recommends \
- # Build tools
- build-essential cmake ninja-build git pkg-config ccache dpkg-dev \
- # Compression / crypto / uuid
- libssl-dev zlib1g-dev libbrotli-dev uuid-dev \
- # gRPC + protobuf
- protobuf-compiler libprotobuf-dev libgrpc++-dev protobuf-compiler-grpc \
- # JSON + logging + fmt
- nlohmann-json3-dev libspdlog-dev libfmt-dev \
- # curl / websockets
- libcurl4-openssl-dev libwebsockets-dev \
- # MySQL/MariaDB + PostgreSQL clients. Without these the build still
- # succeeds and simply omits the mysql-query and postgresql-query nodes,
- # announced in one STATUS line - so a runner from this image registers a
- # node list quietly missing them, and a workflow using either fails with
- # an unknown node type only on hosts built this way.
- libmariadb-dev libpq-dev \
- # Image processing: Magick++ is the image node's engine, libexif reads EXIF.
- libmagick++-dev libexif-dev \
- # WebUI build (Node.js + npm)
- nodejs npm \
- && rm -rf /var/lib/apt/lists/* \
- && echo "smartbotic-automation:debian13:$(date -u +%Y-%m-%dT%H:%M:%SZ)" > /etc/smartbotic-automation-build-base
|