diff --git a/backend/video_api.php b/backend/video_api.php index 9bf2db2..4a48c6f 100644 --- a/backend/video_api.php +++ b/backend/video_api.php @@ -69,6 +69,12 @@ class VeoVideoAPI { [$targetW, $targetH] = $targets[$aspectRatio]; $targetRatio = $targetW / $targetH; + // GD may not be installed — fatal errors from undefined functions can't be suppressed + if (!function_exists('imagecreatefromstring')) { + error_log("resizeImageForVeo: GD extension not available, skipping resize"); + return $base64Data; + } + $decoded = base64_decode($base64Data); if ($decoded === false) return $base64Data; diff --git a/docker/Dockerfile b/docker/Dockerfile index e317ac4..35ba65e 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,9 +9,10 @@ RUN npm run build # ── Stage 2: runtime (nginx + php-fpm) ──────────────────────────────────────── FROM php:8.2-fpm-alpine -RUN apk add --no-cache nginx supervisor libpng-dev libjpeg-turbo-dev \ +RUN apk add --no-cache nginx supervisor libpng-dev libjpeg-turbo-dev zlib-dev \ && docker-php-ext-configure gd --with-jpeg \ - && docker-php-ext-install -j$(nproc) gd + && docker-php-ext-install -j$(nproc) gd \ + && php -m | grep -i gd && echo "GD installed OK" || echo "GD missing — resize disabled" # Composer COPY --from=composer:2 /usr/bin/composer /usr/bin/composer