Dockerfile.base 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # Smartbotic Build Base Image
  2. # Contains all build dependencies pre-installed for fast builds
  3. #
  4. # Build:
  5. # docker buildx build -f packaging/Dockerfile.base -t smartbotic-build-base:debian13 .
  6. FROM debian:trixie
  7. ENV DEBIAN_FRONTEND=noninteractive
  8. # Install all build dependencies
  9. RUN apt-get update && apt-get install -y --no-install-recommends \
  10. # Build tools
  11. build-essential \
  12. cmake \
  13. ninja-build \
  14. git \
  15. pkg-config \
  16. ca-certificates \
  17. # Compiler cache for faster rebuilds
  18. ccache \
  19. # Networking
  20. libcurl4-openssl-dev \
  21. libssl-dev \
  22. # JSON & Logging
  23. nlohmann-json3-dev \
  24. libspdlog-dev \
  25. # Systemd (for sd_notify)
  26. libsystemd-dev \
  27. # gRPC/Protobuf
  28. protobuf-compiler \
  29. libprotobuf-dev \
  30. libgrpc++-dev \
  31. protobuf-compiler-grpc \
  32. # Compression for database storage
  33. liblz4-dev \
  34. # WebUI build
  35. nodejs \
  36. npm \
  37. && rm -rf /var/lib/apt/lists/*
  38. # Pre-install latest npm
  39. RUN npm install -g npm@latest
  40. # Configure ccache
  41. ENV CCACHE_DIR=/ccache
  42. ENV CCACHE_MAXSIZE=5G
  43. ENV CCACHE_COMPRESS=1
  44. ENV CCACHE_COMPRESSLEVEL=6
  45. WORKDIR /build
  46. # Add a marker file to identify base image version
  47. RUN echo "smartbotic-build-base:debian13:v1" > /etc/smartbotic-build-base