mirror of
https://github.com/mudler/LocalAI
synced 2026-05-24 09:28:23 +00:00
42 lines
1.6 KiB
Text
42 lines
1.6 KiB
Text
|
|
ARG BASE_IMAGE=ubuntu:24.04
|
||
|
|
ARG APT_MIRROR=""
|
||
|
|
ARG APT_PORTS_MIRROR=""
|
||
|
|
|
||
|
|
# BASE_IMAGE is either ubuntu:24.04 (for cpu builds) or nvidia/cuda:13.0.0-devel-ubuntu24.04
|
||
|
|
# (for cublas builds). Both ship apt + Ubuntu Noble packages; the nvidia/cuda base
|
||
|
|
# additionally provides /usr/local/cuda. Darwin (Metal) builds bypass this Dockerfile
|
||
|
|
# entirely via scripts/build/ds4-darwin.sh.
|
||
|
|
FROM ${BASE_IMAGE} AS builder
|
||
|
|
ARG BUILD_TYPE
|
||
|
|
ARG TARGETARCH
|
||
|
|
ARG TARGETVARIANT
|
||
|
|
|
||
|
|
ENV BUILD_TYPE=${BUILD_TYPE} \
|
||
|
|
DEBIAN_FRONTEND=noninteractive \
|
||
|
|
PATH=/usr/local/cuda/bin:${PATH}
|
||
|
|
|
||
|
|
WORKDIR /build
|
||
|
|
|
||
|
|
# Install build-time deps via plain apt - install-base-deps.sh's full pipeline
|
||
|
|
# (CUDA keyring + from-source gRPC) is unnecessary here:
|
||
|
|
# - CUDA: when BASE_IMAGE=nvidia/cuda:*, /usr/local/cuda is already populated;
|
||
|
|
# for the cpu build we don't need CUDA at all.
|
||
|
|
# - gRPC/Protobuf: system apt packages are sufficient; ds4's wrapper only links
|
||
|
|
# against them, it doesn't ship the gRPC source tree.
|
||
|
|
# - nlohmann-json: dsml_renderer's only third-party dep.
|
||
|
|
RUN apt-get update && \
|
||
|
|
apt-get install -y --no-install-recommends \
|
||
|
|
git cmake build-essential pkg-config ca-certificates \
|
||
|
|
libgrpc++-dev libprotobuf-dev protobuf-compiler protobuf-compiler-grpc \
|
||
|
|
nlohmann-json3-dev && \
|
||
|
|
apt-get clean && \
|
||
|
|
rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
COPY . /LocalAI
|
||
|
|
|
||
|
|
RUN --mount=type=cache,target=/root/.ccache,id=ds4-ccache-${TARGETARCH}-${BUILD_TYPE},sharing=locked \
|
||
|
|
make -C /LocalAI/backend/cpp/ds4 BUILD_TYPE=${BUILD_TYPE} NATIVE=false grpc-server package
|
||
|
|
|
||
|
|
FROM scratch
|
||
|
|
COPY --from=builder /LocalAI/backend/cpp/ds4/package/. ./
|