Four related fixes uncovered while getting Docker running on a Linux
host without AVX-512 and with an NVIDIA GPU:
- pedalboard>=0.9.21 ships a Linux wheel with AVX-512 instructions
baked into its native extension, which SIGILLs (exit 132) on import
on any CPU without AVX-512 support. Pin below the regression until
upstream fixes it (spotify/pedalboard#454).
- The rocminfo probe in app.py ran unconditionally on every build
variant, always failing and logging on non-ROCm systems. Gate it on
/dev/kfd actually being present.
- sox (required by qwen-tts's X-vector extractor) and a C compiler
(required by Triton to JIT-compile its CUDA driver shim on first
use) were missing from the runtime image, causing hard failures
once those code paths were actually exercised.
- Named volumes and bind mounts (HF cache, app data, generated audio)
are created root-owned by Docker on first use, but the app runs as
the unprivileged voicebox user. chown the mount points in the
entrypoint before dropping privileges so this self-heals on every
start regardless of host UID.