FROM dunglas/frankenphp:php8.4-alpine AS base RUN install-php-extensions \ intl \ opcache \ pdo_pgsql \ zip COPY --from=composer:2 /usr/bin/composer /usr/bin/composer WORKDIR /app ### # Dev stage ### FROM base AS dev COPY composer.json composer.lock symfony.lock ./ RUN composer install --no-scripts --no-autoloader --prefer-dist COPY . . RUN composer dump-autoload ENV APP_ENV=dev \ SERVER_NAME=":80" \ POSTGRES_HOST=database \ POSTGRES_PORT=5432 \ POSTGRES_VERSION=16 \ POSTGRES_DB=app \ POSTGRES_USER=app \ POSTGRES_PASSWORD=pwd ### # Prod stage ### FROM base AS prod COPY composer.json composer.lock symfony.lock ./ RUN composer install --no-dev --no-scripts --no-autoloader --prefer-dist COPY . . RUN APP_ENV=prod composer dump-autoload --classmap-authoritative \ && APP_ENV=prod composer run-script post-install-cmd \ && chown -R www-data:www-data var/ ENV APP_ENV=prod \ SERVER_NAME=localhost \ POSTGRES_HOST=database \ POSTGRES_PORT=5432 \ POSTGRES_VERSION=16 \ POSTGRES_DB=app \ POSTGRES_USER=app \ POSTGRES_PASSWORD=pwd