mirror of
https://github.com/leejet/stable-diffusion.cpp.git
synced 2026-06-09 15:56:39 +00:00
35 lines
1.3 KiB
Docker
35 lines
1.3 KiB
Docker
ARG UBUNTU_VERSION=24.04
|
|
|
|
FROM ubuntu:$UBUNTU_VERSION AS build
|
|
|
|
# sd-server embeds the web UI at build time, so the build image needs Node/pnpm.
|
|
RUN apt-get update && apt-get install -y --no-install-recommends build-essential git cmake libvulkan-dev glslc spirv-headers ca-certificates curl gnupg && \
|
|
mkdir -p /etc/apt/keyrings && \
|
|
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key -o /tmp/nodesource-repo.gpg.key && \
|
|
gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg /tmp/nodesource-repo.gpg.key && \
|
|
rm /tmp/nodesource-repo.gpg.key && \
|
|
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" > /etc/apt/sources.list.d/nodesource.list && \
|
|
apt-get update && \
|
|
apt-get install -y --no-install-recommends nodejs && \
|
|
npm install -g pnpm@10.15.1 && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /sd.cpp
|
|
|
|
COPY . .
|
|
|
|
RUN cmake . -B ./build -DSD_VULKAN=ON
|
|
RUN cmake --build ./build --config Release --parallel
|
|
|
|
FROM ubuntu:$UBUNTU_VERSION AS runtime
|
|
|
|
RUN apt-get update && \
|
|
apt-get install --yes --no-install-recommends libgomp1 libvulkan1 mesa-vulkan-drivers && \
|
|
apt-get clean
|
|
|
|
COPY --from=build /sd.cpp/build/bin/sd-cli /sd-cli
|
|
COPY --from=build /sd.cpp/build/bin/sd-server /sd-server
|
|
|
|
ENTRYPOINT [ "/sd-cli" ]
|