From 747e0f5bf619b2c1a9738868177003c6fe7c5915 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Schultz=20Madsen?= Date: Tue, 1 Sep 2026 16:07:33 +0200 Subject: [PATCH] build: install ffmpeg in API runtime image for Userback poster frames The upcoming Kanban plugin feature that extracts a poster frame from Userback video feedback shells out to ffmpeg: ffmpeg -y -i -frames:v 1 -f image2 The runtime stage (mcr.microsoft.com/dotnet/aspnet:10.0-noble) ships no ffmpeg, so Process.Start("ffmpeg") would throw Win32Exception: No such file or directory in production. Installed in the runtime stage only, with --no-install-recommends and an apt-lists cleanup: 197 packages, ~416 MB uncompressed / ~149 MB compressed. The recommends set would add another ~260 MB of VA-API/VDPAU drivers and speech models that frame extraction does not need. The apt block sits above the ARG/ENV DISABLE_SENTRY pair so a differing DISABLE_SENTRY value cannot invalidate it (dotnet-core-pr.yml passes DISABLE_SENTRY=true, dotnet-core-master.yml passes it not at all). This helps local and self-hosted rebuilds only: neither workflow configures buildx or a registry cache and GitHub runners are ephemeral, so CI gets no layer reuse either way and pays the ~50s apt cost on every build. Required by microting/eform-kanban-plugin#8. Plugin CI pins this repo's stable branch, so this must merge first. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_015sXLtgzZU8QL9m84GqMkoJ --- Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Dockerfile b/Dockerfile index 63237c5da6..6ef9bf1911 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,6 +24,13 @@ RUN pwd # Build runtime image FROM mcr.microsoft.com/dotnet/aspnet:10.0-noble WORKDIR /app + +# ffmpeg is used to extract a poster frame from Userback video feedback +# (microting/eform-kanban-plugin#8). +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ffmpeg \ + && rm -rf /var/lib/apt/lists/* + ARG DISABLE_SENTRY ENV DISABLE_SENTRY=${DISABLE_SENTRY} COPY --from=build-env /app/out .