diff --git a/Dockerfile b/Dockerfile index 16e605a9..16344473 100644 --- a/Dockerfile +++ b/Dockerfile @@ -88,12 +88,9 @@ ENV NVIDIA_VISIBLE_DEVICES=all WORKDIR /build -COPY Makefile . -RUN make get-sources -COPY go.mod . -RUN make prepare COPY . . COPY .git . +RUN make prepare # stablediffusion does not tolerate a newer version of abseil, build it first RUN GRPC_BACKENDS=backend-assets/grpc/stablediffusion make build @@ -102,7 +99,7 @@ RUN if [ "${BUILD_GRPC}" = "true" ]; then \ git clone --recurse-submodules -b v1.58.0 --depth 1 --shallow-submodules https://github.com/grpc/grpc && \ cd grpc && mkdir -p cmake/build && cd cmake/build && cmake -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ - ../.. && make -j12 install && rm -rf grpc \ + ../.. && make -j12 install \ ; fi # Rebuild with defaults backends @@ -144,7 +141,11 @@ WORKDIR /build # see https://github.com/go-skynet/LocalAI/pull/658#discussion_r1241971626 and # https://github.com/go-skynet/LocalAI/pull/434 COPY . . -RUN make prepare-sources + +COPY --from=builder /build/sources ./sources/ +COPY --from=builder /build/grpc ./grpc/ + +RUN make prepare-sources && cd /build/grpc/cmake/build && make install && rm -rf grpc # Copy the binary COPY --from=builder /build/local-ai ./ diff --git a/Makefile b/Makefile index f1c1eb74..d7fe0f5c 100644 --- a/Makefile +++ b/Makefile @@ -222,7 +222,10 @@ sources/go-llama-ggml/libbinding.a: sources/go-llama-ggml sources/go-piper/libpiper_binding.a: sources/go-piper $(MAKE) -C sources/go-piper libpiper_binding.a example/main -get-sources: sources/go-llama sources/go-llama-ggml sources/go-ggml-transformers sources/gpt4all sources/go-piper sources/go-rwkv sources/whisper.cpp sources/go-bert sources/go-stable-diffusion +backend/cpp/llama/llama.cpp: + $(MAKE) -C backend/cpp/llama llama.cpp + +get-sources: backend/cpp/llama/llama.cpp sources/go-llama sources/go-llama-ggml sources/go-ggml-transformers sources/gpt4all sources/go-piper sources/go-rwkv sources/whisper.cpp sources/go-bert sources/go-stable-diffusion touch $@ replace: @@ -236,6 +239,7 @@ replace: prepare-sources: get-sources replace $(GOCMD) mod download + touch $@ ## GENERIC rebuild: ## Rebuilds the project