ARG PHP_VERSION FROM dunglas/frankenphp:php${PHP_VERSION}-trixie AS base # add additional extensions here: RUN install-php-extensions \ pdo_mysql \ mbstring \ curl \ xml \ dom \ fileinfo \ intl \ zip \ opcache \ ctype \ iconv \ openssl \ tokenizer \ simplexml # Install Composer COPY --from=composer:2 /usr/bin/composer /usr/bin/composer RUN chmod +x /usr/bin/composer # ------------------------- # Node.js layer # ------------------------- FROM base AS node RUN apt-get update \ && apt-get install -y curl gnupg \ && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ && apt-get install -y nodejs \ && node -v \ && npm -v \ && rm -rf /var/lib/apt/lists/* # ------------------------- # Symfony profile # ------------------------- FROM node AS symfony RUN install-php-extensions \ apcu \ sodium \ redis RUN curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | bash \ && apt-get install -y symfony-cli # ------------------------- # Laravel profile # ------------------------- FROM node AS laravel RUN install-php-extensions \ redis # ------------------------- # WordPress profile # ------------------------- FROM base AS wordpress RUN install-php-extensions \ mysqli \ exif \ imagick \ redis # Install WP-CLI RUN curl -o /usr/local/bin/wp -L https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \ && chmod +x /usr/local/bin/wp # ------------------------- # Magento 2 profile # ------------------------- FROM base AS magento2 RUN install-php-extensions \ mysqli \ xsl \ soap \ bcmath \ sodium \ redis # ------------------------- # OpenCart profile # ------------------------- FROM base AS opencart RUN install-php-extensions \ mysqli \ redis # Fix permissions for storage & cache (FrankenPHP runs as UID 65534 = nobody) RUN if [ -d /app/storage ]; then chown -R 65534:65534 /app/storage /app/bootstrap/cache; fi ARG MODE # production mode: direct run container on server RUN if [ "$MODE" = "prod" ]; then \ # Enable PHP production settings mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"; \ fi