media: кодеки для magick в образе и диагностика ресайза

Базовый пакет imagemagick в alpine идёт без кодеков, поэтому magick не мог
прочитать jpeg-вложение и падал с "exit status 1". Ставим imagemagick-jpeg,
-heic, -webp, -tiff.

Чтобы такое было видно из логов: runMagick подставляет stderr в ошибку и
отдельно ловит "код выхода 0, но пустой вывод" (так magick ведёт себя без
кодека на запись), а веб логирует формат, размеры до и после, время
скачивания и ресайза.

Если ресайз всё же не удался, отдаём оригинал вместо 502; в кэш не кладём
записи больше 4 МБ, чтобы неужатые оригиналы не съели память.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
av
2026-08-06 12:37:57 +03:00
co-authored by Claude Opus 5
parent 39f4a4dff9
commit 2bf618d105
4 changed files with 66 additions and 7 deletions
+9 -1
View File
@@ -14,7 +14,15 @@ RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /out/remembos ./cmd/rememb
FROM alpine:3.21
RUN apk add --no-cache imagemagick tzdata
# Базовый пакет imagemagick идёт без кодеков: без них magick не читает и не
# пишет JPEG (а с телефонов приходят ещё HEIC и WebP).
RUN apk add --no-cache \
imagemagick \
imagemagick-jpeg \
imagemagick-heic \
imagemagick-webp \
imagemagick-tiff \
tzdata
COPY --from=build /out/remembos /remembos