diff --git a/Dockerfile b/Dockerfile index 26a8f41c..ba27d66b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,18 @@ ARG UBUNTU_VERSION=24.04 FROM ubuntu:$UBUNTU_VERSION AS build -RUN apt-get update && apt-get install -y --no-install-recommends build-essential git cmake +# 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 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 @@ -20,4 +31,4 @@ RUN apt-get update && \ 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" ] \ No newline at end of file +ENTRYPOINT [ "/sd-cli" ] diff --git a/Dockerfile.cuda b/Dockerfile.cuda index b2575023..42b8f4fa 100644 --- a/Dockerfile.cuda +++ b/Dockerfile.cuda @@ -3,7 +3,18 @@ ARG UBUNTU_VERSION=24.04 FROM nvidia/cuda:${CUDA_VERSION}-cudnn-devel-ubuntu${UBUNTU_VERSION} AS build -RUN apt-get update && apt-get install -y --no-install-recommends build-essential git ccache cmake +# 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 ccache cmake 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 diff --git a/Dockerfile.musa b/Dockerfile.musa index 2d95f817..8e23318d 100644 --- a/Dockerfile.musa +++ b/Dockerfile.musa @@ -3,7 +3,18 @@ ARG UBUNTU_VERSION=22.04 FROM mthreads/musa:${MUSA_VERSION}-devel-ubuntu${UBUNTU_VERSION}-amd64 as build -RUN apt-get update && apt-get install -y ccache cmake git +# 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 ccache cmake git 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 @@ -21,4 +32,4 @@ FROM mthreads/musa:${MUSA_VERSION}-runtime-ubuntu${UBUNTU_VERSION}-amd64 as runt 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" ] \ No newline at end of file +ENTRYPOINT [ "/sd-cli" ] diff --git a/Dockerfile.sycl b/Dockerfile.sycl index 5c8db45d..88794be0 100644 --- a/Dockerfile.sycl +++ b/Dockerfile.sycl @@ -3,7 +3,18 @@ ARG SYCL_VERSION=2025.3.2-0 FROM intel/oneapi-basekit:${SYCL_VERSION}-devel-ubuntu24.04 AS build -RUN apt-get update && apt-get install -y cmake +# 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 cmake 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 diff --git a/Dockerfile.vulkan b/Dockerfile.vulkan index 74f2e1e5..a8f1b872 100644 --- a/Dockerfile.vulkan +++ b/Dockerfile.vulkan @@ -2,7 +2,18 @@ ARG UBUNTU_VERSION=24.04 FROM ubuntu:$UBUNTU_VERSION AS build -RUN apt-get update && apt-get install -y --no-install-recommends build-essential git cmake libvulkan-dev glslc spirv-headers +# 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