You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
2.1 KiB
42 lines
2.1 KiB
# Minimal llmsnap control-plane image.
|
|
#
|
|
# In this cookbook llmsnap is a PURE CONTROL PLANE: it does NOT run the vLLM
|
|
# models itself. Each model is a separate Podman Quadlet — an instance of the
|
|
# vllm-model@.container template -> vllm-model@<model>.service; llmsnap only
|
|
# starts/stops those systemd units over
|
|
# the host D-Bus system bus (see llmsnap.container and the polkit rule installed
|
|
# by other/base/install-tools.d/vllm-polkit.sh).
|
|
#
|
|
# The image therefore only needs: the llmsnap binary + `systemctl` (to drive the
|
|
# host units over D-Bus) + CA certificates. It needs NO podman and NO GPU, which
|
|
# is exactly what lets llmsnap run as an unprivileged, capability-dropped
|
|
# container.
|
|
FROM quay.io/fedora/fedora:44
|
|
|
|
# systemctl (systemd package) is invoked by the model `cmd`s in config.yaml to
|
|
# start/stop the vllm-model@<model>.service units over D-Bus. curl/tar to fetch llmsnap.
|
|
RUN dnf install -y systemd ca-certificates curl tar gzip \
|
|
&& dnf clean all
|
|
|
|
# Supply-chain hygiene: llmsnap is a low-visibility GitHub release. Pin the
|
|
# version and verify the tarball against a local copy of SHA256SUMS before trusting
|
|
# it. Architecture is detected from the build host (aarch64 -> arm64, x86_64 ->
|
|
# amd64), so the same Containerfile builds on both.
|
|
ARG LLMSNAP_VERSION=0.0.5
|
|
ADD llmsnap_${LLMSNAP_VERSION}_checksums.txt /tmp/llmsnap_${LLMSNAP_VERSION}_checksums.txt
|
|
RUN set -Eeuo pipefail; \
|
|
declare -A arch_map=( [x86_64]=amd64 [aarch64]=arm64 ); \
|
|
arch="${arch_map[$(uname -m)]:?unsupported architecture: $(uname -m)}"; \
|
|
base="https://github.com/napmany/llmsnap/releases/download/v${LLMSNAP_VERSION}"; \
|
|
tarball="llmsnap_${LLMSNAP_VERSION}_linux_${arch}.tar.gz"; \
|
|
cd /tmp; \
|
|
curl -sSfL -o "$tarball" "$base/$tarball"; \
|
|
grep " $tarball\$" /tmp/llmsnap_${LLMSNAP_VERSION}_checksums.txt | sha256sum -c -; \
|
|
tar -xzf "$tarball" -C /usr/local/bin llmsnap; \
|
|
rm -f "$tarball" /tmp/llmsnap_${LLMSNAP_VERSION}_checksums.txt; \
|
|
chmod 0755 /usr/local/bin/llmsnap; \
|
|
/usr/local/bin/llmsnap --version
|
|
|
|
# llmsnap flags are appended by the Quadlet (Exec=).
|
|
ENTRYPOINT ["/usr/local/bin/llmsnap"]
|
|
CMD []
|
|
|