# frank-small runtime image: the digest-pinned vLLM gemma-x86_64-cu129 base
# (vLLM 0.22.1rc1.dev357+g74b5964f0 — the image that loads
# gemma-4-12B-it-qat-w4a16-ct, runs the Gemma4MTPModel drafter and carries
# the gemma4 reasoning/tool-call parsers) plus the vllm[audio] extra.
#
# The base image ships WITHOUT the audio extras, so an input_audio content
# part 500s with "Please install vllm[audio] for audio support" (measured
# 2026-09-19). The extra is just four PyPI packages (av, scipy, soundfile,
# mistral_common[audio]); installing the extras directly — not
# `pip install vllm[audio]` — keeps the pinned dev build in place: a bare
# `vllm[audio]` would make pip reach for the PyPI release and replace the
# 0.22.1rc1.dev build that knows gemma4.
#
# Built by scripts/deploy-remote.sh on dankclaw (rootless podman, network on
# for pip): the base is pulled by digest and re-tagged to the FROM ref below
# first, then `podman build` produces the :frank-small tag the quadlet runs.
FROM localhost/vllm/vllm-openai:gemma4-unified

# The vllm[audio] extra as raw packages (header explains why not
# `pip install vllm[audio]`): audio input needs av/scipy/soundfile plus
# the mistral_common audio protocol pieces.
RUN pip install --no-cache-dir av scipy soundfile "mistral_common[audio]"
