Dockerfile.base 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # smartbotic-automation Build Base Image
  2. # Pre-installed Debian 13 build dependencies for fast iterative builds.
  3. #
  4. # Build:
  5. # docker buildx build -f packaging/Dockerfile.base \
  6. # --build-arg REPO_PASS=<password> \
  7. # -t smartbotic-automation-build-base:debian13 .
  8. FROM debian:trixie
  9. ENV DEBIAN_FRONTEND=noninteractive
  10. RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates \
  11. && rm -rf /var/lib/apt/lists/*
  12. # SmartBotics APT repository (for libsmartbotic-db-client-dev)
  13. ARG REPO_USER=callerai
  14. ARG REPO_PASS
  15. COPY packaging/smartbotics-repo.gpg /usr/share/keyrings/smartbotics-repo.gpg
  16. RUN echo "deb [signed-by=/usr/share/keyrings/smartbotics-repo.gpg] https://repository.smartbotics.ai trixie main" \
  17. > /etc/apt/sources.list.d/smartbotics.list \
  18. && printf "machine repository.smartbotics.ai\nlogin %s\npassword %s\n" \
  19. "$REPO_USER" "$REPO_PASS" > /etc/apt/auth.conf.d/smartbotics.conf \
  20. && chmod 600 /etc/apt/auth.conf.d/smartbotics.conf \
  21. && apt-get update \
  22. && apt-get install -y --no-install-recommends libsmartbotic-db-client-dev \
  23. && rm -rf /var/lib/apt/lists/* \
  24. && rm -f /etc/apt/auth.conf.d/smartbotics.conf \
  25. && rm -f /etc/apt/sources.list.d/smartbotics.list
  26. RUN apt-get update && apt-get install -y --no-install-recommends \
  27. # Build tools
  28. build-essential cmake ninja-build git pkg-config ccache dpkg-dev \
  29. # Compression / crypto / uuid
  30. libssl-dev zlib1g-dev libbrotli-dev uuid-dev \
  31. # gRPC + protobuf
  32. protobuf-compiler libprotobuf-dev libgrpc++-dev protobuf-compiler-grpc \
  33. # JSON + logging + fmt
  34. nlohmann-json3-dev libspdlog-dev libfmt-dev \
  35. # curl / websockets
  36. libcurl4-openssl-dev libwebsockets-dev \
  37. # WebUI build (Node.js + npm)
  38. nodejs npm \
  39. && rm -rf /var/lib/apt/lists/* \
  40. && echo "smartbotic-automation:debian13:$(date -u +%Y-%m-%dT%H:%M:%SZ)" > /etc/smartbotic-automation-build-base