From e71ddc2f8b79a2162a2827e0f77782d9e0306108 Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 28 Mar 2026 21:24:59 +0500 Subject: [PATCH] fix(backend): add ffmpeg to backend image for pocket-tts voice sample generation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit handlePresignVoiceSample generates voice samples on demand via pocket-tts, which requires WAV→MP3 transcoding via ffmpeg. The backend was using distroless/static (no ffmpeg) so all pocket-tts preview requests returned 500. Switch backend stage to Alpine + ffmpeg, matching the runner image. --- backend/Dockerfile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index 3afd554..13d4fa6 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -30,9 +30,14 @@ RUN --mount=type=cache,target=/root/go/pkg/mod \ -o /out/healthcheck ./cmd/healthcheck # ── backend service ────────────────────────────────────────────────────────── -FROM gcr.io/distroless/static:nonroot AS backend +# Uses Alpine (not distroless) so ffmpeg is available for on-demand voice +# sample generation via pocket-tts (WAV→MP3 transcoding). +FROM alpine:3.21 AS backend +RUN apk add --no-cache ffmpeg ca-certificates && \ + addgroup -S appgroup && adduser -S appuser -G appgroup COPY --from=builder /out/healthcheck /healthcheck COPY --from=builder /out/backend /backend +USER appuser ENTRYPOINT ["/backend"] # ── runner service ───────────────────────────────────────────────────────────