chore(project): install exiftool in the runtime image

The backend now shells out to exiftool for metadata extraction, so it must
be present alongside ffmpeg in the Alpine runtime stage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 20:55:33 +03:00
parent 52c62b5c8d
commit 5571dfa46d
+6 -4
View File
@@ -49,13 +49,15 @@ RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o /out/server
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Stage 3 — minimal runtime # Stage 3 — minimal runtime
# #
# Alpine (not distroless/scratch) because video thumbnailing invokes ffmpeg as # Alpine (not distroless/scratch) because video thumbnailing invokes ffmpeg and
# an external process; it must be present on the runtime image. # metadata extraction invokes exiftool as external processes; both must be
# present on the runtime image.
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
FROM alpine:3.21 AS runtime FROM alpine:3.21 AS runtime
# ffmpeg: video frame extraction. ca-certificates/tzdata: TLS + time zones. # ffmpeg: video frame extraction. exiftool: rich image/video/audio metadata.
RUN apk add --no-cache ffmpeg ca-certificates tzdata # ca-certificates/tzdata: TLS + time zones.
RUN apk add --no-cache ffmpeg exiftool ca-certificates tzdata
# Run as an unprivileged user. # Run as an unprivileged user.
RUN addgroup -S -g 42776 tanabata && adduser -S -G tanabata -u 42776 tanabata RUN addgroup -S -g 42776 tanabata && adduser -S -G tanabata -u 42776 tanabata