Dockerfile45 lines · 1407 chars FROM debian:stable-slim AS builder
ENV DEBIAN_FRONTEND=noninteractive
# Install build tools
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential cmake ca-certificates \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /src
# Copy repository contents (may be minimal in this context)
COPY . .
RUN set -e; \
if [ -f CMakeLists.txt ]; then \
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .; \
cmake --build . -- -j"$(nproc)"; \
cmake --install .; \
else \
echo "No root CMakeLists.txt found; creating a minimal placeholder build"; \
printf 'int placeholder() { return 0; }' > placeholder.c; \
printf 'cmake_minimum_required(VERSION 3.0)\nproject(placeholder)\nadd_library(placeholder STATIC placeholder.c)\ninstall(TARGETS placeholder DESTINATION lib)' > CMakeLists.txt; \
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .; \
cmake --build . -- -j"$(nproc)"; \
cmake --install .; \
fi
FROM debian:stable-slim AS runtime
ENV DEBIAN_FRONTEND=noninteractive
# Runtime dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
libgcc-s1 libstdc++6 zlib1g libbz2-1.0 liblz4-1 libzstd1 \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/local /usr/local
RUN ldconfig
WORKDIR /root
CMD ["bash"]