FROM rust:1.87 AS rust-builder
WORKDIR /workspace/native/rdma-engine
RUN apt-get update && apt-get install -y --no-install-recommends pkg-config librdmacm-dev libibverbs-dev rdma-core && rm -rf /var/lib/apt/lists/*
COPY native/rdma-engine ./
RUN cargo build --release
FROM golang:1.24.5-bookworm AS go-builder
WORKDIR /workspace
RUN apt-get update && apt-get install -y --no-install-recommends \
pkg-config \
librdmacm-dev \
libibverbs-dev \
rdma-core \
&& rm -rf /var/lib/apt/lists/*
COPY go.mod go.sum ./
RUN go mod download
COPY api ./api
COPY cmd ./cmd
COPY pkg ./pkg
COPY --from=rust-builder /workspace/native/rdma-engine/target/release/librdma_engine.a /usr/local/lib/librdma_engine.a
ENV CGO_ENABLED=1
ENV CGO_LDFLAGS="-L/usr/local/lib"
RUN GOOS=linux go build -tags rdma_native -o /out/node-agent ./cmd/node-agent
FROM debian:bookworm-slim
WORKDIR /
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
rdma-core \
librdmacm1 \
libibverbs1 \
ibverbs-providers \
&& rm -rf /var/lib/apt/lists/*
COPY --from=go-builder /out/node-agent /usr/local/bin/node-agent
ENTRYPOINT ["/usr/local/bin/node-agent"]