CxWebApp/Dockerfile
CxAI Agent 055e350108
Some checks are pending
build-and-push / image (push) Waiting to run
feat: initial CxWebApp (macOS shell + swift-app wired to CxLLM-SDK)
2026-05-16 14:32:01 -05:00

44 lines
1.3 KiB
Docker

# syntax=docker/dockerfile:1.7
# Multi-stage build: cmake/clang on debian:bookworm -> debian:stable-slim runtime.
FROM debian:bookworm AS builder
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
cmake \
clang \
git \
ca-certificates \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /src
COPY . /src
RUN cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
&& cmake --build build --parallel "$(nproc)" \
&& cmake --install build --prefix /opt/cxwebapp
# ----- runtime ---------------------------------------------------------------
FROM debian:stable-slim AS runtime
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
libstdc++6 \
curl \
&& rm -rf /var/lib/apt/lists/* \
&& useradd --system --uid 10001 --home /opt/cxwebapp --shell /usr/sbin/nologin cxwebapp
COPY --from=builder /opt/cxwebapp /opt/cxwebapp
WORKDIR /opt/cxwebapp/bin
ENV PORT=8080
EXPOSE 8080
USER cxwebapp
HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \
CMD curl -fsS "http://127.0.0.1:${PORT}/api/health" || exit 1
ENTRYPOINT ["/opt/cxwebapp/bin/CxWebApp"]