From b6c8996a2cc92c567765fdcb2b9d2c8de91cebba Mon Sep 17 00:00:00 2001 From: keyhan Date: Fri, 15 May 2026 00:35:57 +0330 Subject: [PATCH] fix(laravel): align Composer build stage with app PHP version Use php-cli matching phpVersion instead of composer:2 (PHP 8.5), skip artisan during dump-autoload, and fail loudly on composer install instead of swallowing lock-file/platform errors with || true. Co-authored-by: Cursor --- backend/src/build/build.service.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/backend/src/build/build.service.ts b/backend/src/build/build.service.ts index 3f80516..bd6e6e9 100644 --- a/backend/src/build/build.service.ts +++ b/backend/src/build/build.service.ts @@ -998,13 +998,15 @@ CMD ["sh", "-c", "if [ \\"$(cat /app/.mode)\\" = \\"standalone\\" ] && [ -f serv private laravelDockerfile(app: Application): string { const phpVersion = app.phpVersion || '8.3'; const port = app.port || 80; - return `# --- Build stage --- -FROM composer:2 AS composer + return `# --- Build stage (match production PHP version for Composer) --- +FROM php:${phpVersion}-cli-alpine AS composer +RUN apk add --no-cache git unzip +COPY --from=composer:2 /usr/bin/composer /usr/bin/composer WORKDIR /app COPY composer.json composer.lock* ./ -RUN composer install --no-dev --no-scripts --no-autoloader --prefer-dist || true +RUN composer install --no-dev --no-scripts --no-autoloader --prefer-dist --ignore-platform-reqs COPY . . -RUN composer dump-autoload --optimize --no-dev +RUN composer dump-autoload --optimize --no-dev --no-scripts # --- Production stage --- FROM php:${phpVersion}-fpm-alpine